{"id":1251,"date":"2025-08-25T10:00:00","date_gmt":"2025-08-25T10:00:00","guid":{"rendered":"https:\/\/jacar.es\/python-313-gil-opcional\/"},"modified":"2025-08-25T10:00:00","modified_gmt":"2025-08-25T10:00:00","slug":"python-313-gil-opcional","status":"publish","type":"post","link":"https:\/\/jacar.es\/en\/python-313-gil-opcional\/","title":{"rendered":"Python 3.13 with optional GIL: what it means for teams"},"content":{"rendered":"<p>The arrival of Python 3.13 in October 2024 brought a change the community had been discussing for more than a decade: the ability to run the interpreter without the Global Interpreter Lock, known as the GIL. Almost a year has passed since release and we now have enough real-world reports to separate the promise from the nuance. The result is interesting and, as usual, more complicated than the headlines suggested.<\/p>\n<h2 id=\"what-free-threading-in-3.13-actually-is\">What free-threading in 3.13 actually is<\/h2>\n<p>PEP 703, accepted by the Python steering council in 2023, proposed making the GIL optional at build time. Python 3.13 includes this capability as an experimental build, marked with the t suffix in the binary: python3.13t versus python3.13. The standard binary still has the GIL, because removing it introduces deep changes in the interpreter\u2019s memory management that cannot be switched on and off dynamically without cost.<\/p>\n<p>The underlying difference is that the build with GIL serializes all Python bytecode to a single thread per process. This simplifies the interpreter\u2019s implementation and guarantees that internal data structures do not corrupt. The well-known trade-off is that a Python process cannot take advantage of multiple cores for pure Python code; it needs multiprocessing, with its own memory and serialization costs, or libraries that release the GIL in native code like NumPy.<\/p>\n<p>In the 3.13 free-threaded build, multiple Python threads execute bytecode in real parallel. For workloads where many threads do independent work in pure Python, the gain can scale linearly with the number of cores. For workloads where threads spend most of their time in already-parallel C code, the gain is zero or very small because those libraries were already releasing the GIL.<\/p>\n<h2 id=\"what-actually-improves-and-what-doesnt\">What actually improves and what doesn\u2019t<\/h2>\n<p>In tests published by Meta, Cloudflare, and several teams that shared their results, the workloads that gain the most are orchestrator-style: many threads making HTTP calls in parallel, parsing JSON, transforming medium-sized data structures. In those cases, free-threading can yield between two and six times more throughput with four or eight cores. The difference is real and measurable.<\/p>\n<p>Purely CPU-intensive workloads in pure Python, without leaving the interpreter, also benefit, but those workloads usually already lived in NumPy, SciPy, or a C binding. If your hot loop was already in native code, removing the GIL adds almost nothing. Traditional web workloads on Django or Flask over WSGI also do not change much because workers were already processes, not threads.<\/p>\n<p>One group does benefit clearly but with work: applications that today use multiprocessing to sidestep the GIL can move back to threads, saving serialization and duplicated memory. The saving can be significant for workloads with large data structures shared between workers. Moving from processes to threads requires redesigning how state is shared, which is easier with threads but not trivial.<\/p>\n<h2 id=\"the-hidden-cost-single-thread-speed\">The hidden cost: single-thread speed<\/h2>\n<p>The free-threading trick is not free. The implementation requires atomic reference counting, extra locks in internal interpreter structures, and garbage collector changes. The approximate cost is a single-thread performance reduction of between five and fifteen percent compared to the same Python 3.13 with GIL.<\/p>\n<p>For workloads that do not parallelize and run single-threaded, this is a price paid without gain. That is why Python 3.13 makes free-threading optional and not default. If your application is a web handler with one process per request, if it is a CLI script, if it is anything where you do not have multiple threads doing real pure-Python work, the GIL build is still the right one.<\/p>\n<p>This design decision is reasonable. It does not force anyone to pay the cost if they will not cash it in. But it has an operational implication: binary packages published on PyPI have to ship wheels for both ABIs, cpython313 and cpython313t, which doubles maintenance work. By mid-2025 ecosystem coverage is still partial: the most-used libraries already ship both wheels, but many niche dependencies do not.<\/p>\n<h2 id=\"ecosystem-compatibility\">Ecosystem compatibility<\/h2>\n<p>Beyond packaging work, there is a subtler problem: a lot of C code that interacts with Python assumed the GIL\u2019s implicit serialization. A C extension that stored state in global variables, or that mutated Python structures without taking explicit locks, worked by accident thanks to the GIL. Under free-threading that code corrupts silently. The list of extensions that have had to fix hidden bugs is long and includes well-known names.<\/p>\n<p>The PSF has done a good job documenting what needs to change, but the process takes time. In practice, the conservative advice is to wait until the critical dependencies of your application explicitly declare free-threading compatibility before deploying to production. Waiting for Python 3.14, due in October 2025, where free-threading is announced to graduate from experimental to supported, is a prudent option.<\/p>\n<h2 id=\"how-to-test-it-in-a-real-environment\">How to test it in a real environment<\/h2>\n<p>The safest way to start evaluating free-threading is to use the official Python 3.13 containers with the freethreading tag, bring up the application under that interpreter, and run the usual test suite. Problems typically surface at integration with specific native libraries. In purely pure-Python applications with few dependencies, it usually works without friction.<\/p>\n<p>To measure whether there is real benefit, it helps to compare against the same code on 3.13 with the GIL enabled. The PYTHON_GIL environment variable allows changing the behavior at start time. This gives a clean measurement of the concurrency impact without changing versions. Measuring with a representative workload, not an isolated microbenchmark, is the difference between making a useful decision and a wrong one.<\/p>\n<h2 id=\"when-migrating-pays-off\">When migrating pays off<\/h2>\n<p>My reading after watching several proofs of concept is that free-threading is worth it now if your application meets three conditions: you have workloads that suffer GIL contention today, your dependencies are up to date, and you have time to observe in production with rollback capacity. If any of the three is missing, waiting for 3.14 or even 3.15 is perfectly reasonable.<\/p>\n<p>There is a clearer scenario: new applications starting in 2026 with long horizons. For those, it makes sense to design assuming free-threading will be mainstream within a couple of years, pick compatible libraries, and use thread-based concurrency patterns instead of multiprocessing. The cost of being early is small and the medium-term benefit is real.<\/p>\n<p>For existing, stable applications the calculation is different. There is no need to migrate for fashion. The performance improvement may be real or may be zero depending on the workload profile. Measure before deciding, keep a rollback plan, and accept that the ecosystem is still maturing. Those attitudes avoid surprises.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python 3.13 experimentally introduces GIL-free execution via PEP 703. A few months in, real-world tests outside the lab are appearing. It is worth understanding clearly what you gain, what you lose, and what still does not change.<\/p>\n","protected":false},"author":1,"featured_media":1256,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[737,926,925,927,55,924,825],"class_list":["post-1251","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo-de-software","tag-concurrencia","tag-free-threading","tag-gil","tag-pep-703","tag-python","tag-python-3-13","tag-rendimiento"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"en","enabled_languages":["es","en"],"languages":{"es":{"title":true,"content":true,"excerpt":true},"en":{"title":true,"content":true,"excerpt":true}}},"gutentor_comment":0,"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Python 3.13 with optional GIL: what it means for teams - Jacar<\/title>\n<meta name=\"description\" content=\"Python 3.13 free-threading explained without hype: what PEP 703 changes, which workloads actually benefit, and the hidden cost of dropping the GIL.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jacar.es\/python-313-gil-opcional\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python 3.13 with optional GIL: what it means for teams - Jacar\" \/>\n<meta property=\"og:description\" content=\"Python 3.13 free-threading explained without hype: what PEP 703 changes, which workloads actually benefit, and the hidden cost of dropping the GIL.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jacar.es\/python-313-gil-opcional\/\" \/>\n<meta property=\"og:site_name\" content=\"Jacar\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-25T10:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2026\/04\/20193818\/yo-365x365.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"252\" \/>\n\t<meta property=\"og:image:height\" content=\"229\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Javier Ca\u00f1ete\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Javier Ca\u00f1ete\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/\"},\"author\":{\"name\":\"Javier Ca\u00f1ete\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/person\\\/54a7f7b4224b38fafc9866eb3e614208\"},\"headline\":\"Python 3.13 with optional GIL: what it means for teams\",\"datePublished\":\"2025-08-25T10:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/\"},\"wordCount\":2333,\"publisher\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/person\\\/54a7f7b4224b38fafc9866eb3e614208\"},\"image\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jacar.es\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/jwp-4176709-26438.svg\",\"keywords\":[\"concurrencia\",\"free-threading\",\"gil\",\"pep 703\",\"python\",\"python 3.13\",\"rendimiento\"],\"articleSection\":[\"Desarrollo de Software\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"ItemPage\"],\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/\",\"url\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/\",\"name\":\"Python 3.13 with optional GIL: what it means for teams - Jacar\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jacar.es\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/jwp-4176709-26438.svg\",\"datePublished\":\"2025-08-25T10:00:00+00:00\",\"description\":\"Python 3.13 free-threading explained without hype: what PEP 703 changes, which workloads actually benefit, and the hidden cost of dropping the GIL.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jacar.es\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/jwp-4176709-26438.svg\",\"contentUrl\":\"https:\\\/\\\/jacar.es\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/jwp-4176709-26438.svg\",\"width\":149,\"height\":149,\"caption\":\"Diagrama oficial de la jerarqu\u00eda est\u00e1ndar de tipos de Python 3.13 de Wikimedia Commons, directamente asociado a la versi\u00f3n donde debuta el modo free-threading que analiza el art\u00edculo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jacar.es\\\/python-313-gil-opcional\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/jacar.es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python 3.13 con GIL opcional: qu\u00e9 significa para los equipos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#website\",\"url\":\"https:\\\/\\\/jacar.es\\\/\",\"name\":\"Jacar\",\"description\":\"Passion for Technology\",\"publisher\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/person\\\/54a7f7b4224b38fafc9866eb3e614208\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jacar.es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/person\\\/54a7f7b4224b38fafc9866eb3e614208\",\"name\":\"Javier Ca\u00f1ete\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/logo-e1600248648624.png\",\"url\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/logo-e1600248648624.png\",\"contentUrl\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/logo-e1600248648624.png\",\"width\":196,\"height\":100,\"caption\":\"Javier Ca\u00f1ete\"},\"logo\":{\"@id\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/logo-e1600248648624.png\"},\"description\":\"CEO de Jacar Systems. Apasionado de la tecnolog\u00eda, la infraestructura cloud y la inteligencia artificial. Escribe sobre DevOps, IA, plataformas y software desde Madrid.\",\"sameAs\":[\"https:\\\/\\\/jacar.es\"],\"url\":\"https:\\\/\\\/jacar.es\\\/en\\\/author\\\/javi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python 3.13 with optional GIL: what it means for teams - Jacar","description":"Python 3.13 free-threading explained without hype: what PEP 703 changes, which workloads actually benefit, and the hidden cost of dropping the GIL.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jacar.es\/python-313-gil-opcional\/","og_locale":"en_US","og_type":"article","og_title":"Python 3.13 with optional GIL: what it means for teams - Jacar","og_description":"Python 3.13 free-threading explained without hype: what PEP 703 changes, which workloads actually benefit, and the hidden cost of dropping the GIL.","og_url":"https:\/\/jacar.es\/python-313-gil-opcional\/","og_site_name":"Jacar","article_published_time":"2025-08-25T10:00:00+00:00","og_image":[{"width":252,"height":229,"url":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2026\/04\/20193818\/yo-365x365.webp","type":"image\/png"}],"author":"Javier Ca\u00f1ete","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Javier Ca\u00f1ete","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#article","isPartOf":{"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/"},"author":{"name":"Javier Ca\u00f1ete","@id":"https:\/\/jacar.es\/#\/schema\/person\/54a7f7b4224b38fafc9866eb3e614208"},"headline":"Python 3.13 with optional GIL: what it means for teams","datePublished":"2025-08-25T10:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/"},"wordCount":2333,"publisher":{"@id":"https:\/\/jacar.es\/#\/schema\/person\/54a7f7b4224b38fafc9866eb3e614208"},"image":{"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#primaryimage"},"thumbnailUrl":"https:\/\/jacar.es\/wp-content\/uploads\/2025\/08\/jwp-4176709-26438.svg","keywords":["concurrencia","free-threading","gil","pep 703","python","python 3.13","rendimiento"],"articleSection":["Desarrollo de Software"],"inLanguage":"en-US"},{"@type":["WebPage","ItemPage"],"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/","url":"https:\/\/jacar.es\/python-313-gil-opcional\/","name":"Python 3.13 with optional GIL: what it means for teams - Jacar","isPartOf":{"@id":"https:\/\/jacar.es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#primaryimage"},"image":{"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#primaryimage"},"thumbnailUrl":"https:\/\/jacar.es\/wp-content\/uploads\/2025\/08\/jwp-4176709-26438.svg","datePublished":"2025-08-25T10:00:00+00:00","description":"Python 3.13 free-threading explained without hype: what PEP 703 changes, which workloads actually benefit, and the hidden cost of dropping the GIL.","breadcrumb":{"@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jacar.es\/python-313-gil-opcional\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#primaryimage","url":"https:\/\/jacar.es\/wp-content\/uploads\/2025\/08\/jwp-4176709-26438.svg","contentUrl":"https:\/\/jacar.es\/wp-content\/uploads\/2025\/08\/jwp-4176709-26438.svg","width":149,"height":149,"caption":"Diagrama oficial de la jerarqu\u00eda est\u00e1ndar de tipos de Python 3.13 de Wikimedia Commons, directamente asociado a la versi\u00f3n donde debuta el modo free-threading que analiza el art\u00edculo"},{"@type":"BreadcrumbList","@id":"https:\/\/jacar.es\/python-313-gil-opcional\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/jacar.es\/"},{"@type":"ListItem","position":2,"name":"Python 3.13 con GIL opcional: qu\u00e9 significa para los equipos"}]},{"@type":"WebSite","@id":"https:\/\/jacar.es\/#website","url":"https:\/\/jacar.es\/","name":"Jacar","description":"Passion for Technology","publisher":{"@id":"https:\/\/jacar.es\/#\/schema\/person\/54a7f7b4224b38fafc9866eb3e614208"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jacar.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/jacar.es\/#\/schema\/person\/54a7f7b4224b38fafc9866eb3e614208","name":"Javier Ca\u00f1ete","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2020\/09\/logo-e1600248648624.png","url":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2020\/09\/logo-e1600248648624.png","contentUrl":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2020\/09\/logo-e1600248648624.png","width":196,"height":100,"caption":"Javier Ca\u00f1ete"},"logo":{"@id":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2020\/09\/logo-e1600248648624.png"},"description":"CEO de Jacar Systems. Apasionado de la tecnolog\u00eda, la infraestructura cloud y la inteligencia artificial. Escribe sobre DevOps, IA, plataformas y software desde Madrid.","sameAs":["https:\/\/jacar.es"],"url":"https:\/\/jacar.es\/en\/author\/javi\/"}]}},"_links":{"self":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/posts\/1251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/comments?post=1251"}],"version-history":[{"count":0,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/posts\/1251\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/media\/1256"}],"wp:attachment":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/media?parent=1251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/categories?post=1251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/tags?post=1251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}