{"id":79780,"date":"2026-07-28T11:52:11","date_gmt":"2026-07-28T06:22:11","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=79780"},"modified":"2026-07-30T15:56:26","modified_gmt":"2026-07-30T10:26:26","slug":"automating-android-apk-builds-firebase-distribution-in-react-native-using-fastlane","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/automating-android-apk-builds-firebase-distribution-in-react-native-using-fastlane\/","title":{"rendered":"Automating Android APK Builds &amp; Firebase Distribution in React Native Using Fastlane"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>In the previous article, I explained how to <a href=\"https:\/\/www.tothenew.com\/blog\/automating-ios-testflight-releases-with-fastlane-in-react-native\/\">automate iOS builds and TestFlight uploads using Fastlane<\/a> in a React Native project.<\/p>\n<p>Now let\u2019s continue the automation journey by setting up Android deployment automation using Fastlane.<\/p>\n<p>Managing Android releases manually can quickly become repetitive. A typical release process usually involves:<\/p>\n<ul>\n<li>Updating versionCode<\/li>\n<li>Cleaning Gradle builds<\/li>\n<li>Generating APKs manually<\/li>\n<li>Uploading builds to Firebase<\/li>\n<li>Sharing APKs with testers<\/li>\n<li>Adding release notes<\/li>\n<\/ul>\n<p>As projects grow, this becomes slower and more error-prone.<\/p>\n<p>Fastlane helps automate the entire workflow \u2014 from generating APKs to distributing them through Firebase App Distribution.<\/p>\n<p>By the end of this guide, you\u2019ll be able to:<\/p>\n<ul>\n<li>Automatically increment Android version codes<\/li>\n<li>Generate Debug or Release APKs<\/li>\n<li>Upload builds directly to Firebase App Distribution<\/li>\n<li>Attach release notes automatically<\/li>\n<li>Reduce repetitive manual release work<\/li>\n<\/ul>\n<hr \/>\n<h2>What is Fastlane?<\/h2>\n<p>Fastlane is an open-source automation tool for Android and iOS deployments.<\/p>\n<p>It helps automate tasks like:<\/p>\n<ul>\n<li>Building APKs or AABs<\/li>\n<li>Managing version codes<\/li>\n<li>Uploading builds<\/li>\n<li>Running deployment workflows<\/li>\n<li>Integrating with CI\/CD pipelines<\/li>\n<\/ul>\n<p>Instead of manually performing release steps every time, Fastlane allows you to automate everything using one command.<\/p>\n<hr \/>\n<h2>Prerequisites<\/h2>\n<p>Before starting, make sure you have:<\/p>\n<p><strong>Fastlane Installed<\/strong><\/p>\n<p>Install Fastlane globally:<\/p>\n<p><em><span style=\"color: #339966;\">brew install fastlane<\/span><\/em><\/p>\n<p>Verify installation:<\/p>\n<p><em><span style=\"color: #339966;\">fastlane &#8211;version<\/span><\/em><\/p>\n<hr \/>\n<h2>Firebase App Distribution Setup<\/h2>\n<p>Your React Native app should already be connected to Firebase.<\/p>\n<p>You\u2019ll also need:<\/p>\n<ul>\n<li>Firebase Project<\/li>\n<li>Firebase App Distribution enabled<\/li>\n<li>Firebase App ID<\/li>\n<\/ul>\n<p>You can find the App ID inside the Firebase Console.<\/p>\n<hr \/>\n<h2>Step 1 \u2014 Initialize Fastlane<\/h2>\n<p>Inside the android directory, initialize Fastlane:<\/p>\n<p><em><span style=\"color: #339966;\">fastlane init<\/span><\/em><\/p>\n<p>Fastlane will create a new structure like this:<\/p>\n<p>android\/<br \/>\n\u2514\u2500\u2500 fastlane\/<br \/>\n\u251c\u2500\u2500 Fastfile<br \/>\n\u251c\u2500\u2500 Appfile<br \/>\n\u2514\u2500\u2500 Pluginfile<\/p>\n<hr \/>\n<h2>Step 2 \u2014 Install Required Plugins<\/h2>\n<p>We\u2019ll use:<\/p>\n<ul>\n<li>Firebase App Distribution plugin<\/li>\n<li>Version code increment plugin<\/li>\n<\/ul>\n<p>Install both plugins:<\/p>\n<p><em><span style=\"color: #339966;\">fastlane add_plugin firebase_app_distribution<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">fastlane add_plugin increment_version_code<\/span><\/em><\/p>\n<hr \/>\n<h2>Step 3 \u2014 Configure the Appfile<\/h2>\n<p>Open: <em><span style=\"color: #339966;\">android\/fastlane\/Appfile<\/span><\/em><\/p>\n<p>Add your package name and Firebase credentials:<\/p>\n<p><em><span style=\"color: #339966;\">json_key_file(&#8220;firebase-service-account.json&#8221;)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">package_name(&#8220;com.example.app&#8221;)<\/span><\/em><\/p>\n<hr \/>\n<h2>Step 4 \u2014 Configure Your Fastfile<\/h2>\n<h2>Approach One (Basic)<\/h2>\n<p>Open: <em><span style=\"color: #339966;\">android\/fastlane\/Fastfile<\/span><\/em><br \/>\nAdd the following configuration:<\/p>\n<p><em><span style=\"color: #339966;\">default_platform(:android)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">platform :android do<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Lane to increment versionCode<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">lane :increment_version do<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\"># Fetch the latest release from Firebase App Distribution<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">latest_release = firebase_app_distribution_get_latest_release(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">app: &#8220;&#8221;1:0000000000:xxxx:xxxxxxx&#8221;&#8221; # Replace with your Firebase App ID<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Increment the versionCode by 1 from the latest release<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">desc &#8220;Build and upload the APK (Release) to Firebase App Distribution&#8221;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">lane :upload_to_firebase do<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Increment versionCode before building<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">increment_version<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Clean Gradle build<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">gradle(task: &#8220;clean&#8221;)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Build the APK<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">gradle(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">task: &#8220;assemble&#8221;,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">build_type: &#8220;Release&#8221;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Upload the APK to Firebase App Distribution<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">firebase_app_distribution(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">app: &#8220;1:0000000000:xxxx:xxxxxxx&#8221;, # Replace with your Firebase App ID<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">testers: &#8220;amitkumar@domain.com&#8221;,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">release_notes: File.read(&#8220;..\/..\/release_notes.txt&#8221;) # Ensure correct path to your changelog file<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">desc &#8220;Build and upload the APK (Debug) to Firebase App Distribution&#8221;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">lane :upload_to_firebase_debug do<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Increment versionCode before building<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">increment_version<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Clean Gradle build<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">gradle(task: &#8220;clean&#8221;)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Build the Debug APK<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">gradle(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">task: &#8220;assemble&#8221;,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">build_type: &#8220;Debug&#8221;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Optional: Upload the APK to Firebase App Distribution<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">firebase_app_distribution(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">app: &#8220;1:0000000000:xxxx:xxxxxxx&#8221;, # Replace with your Firebase App ID<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">testers: &#8220;amitkumar@domain.com&#8221;,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">groups: &#8220;your-group-team-id&#8221;,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">release_notes: File.read(&#8220;..\/..\/release_notes.txt&#8221;) # Ensure correct path to the changelog file<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<hr \/>\n<h2>Recommended: Approach Two (Interactive &amp; Scalable)<\/h2>\n<p>This version gives a cleaner and interactive deployment experience:<br \/>\nThe most efficient and maintainable way is to use a single interactive Fastlane script. This approach streamlines versioning, building, and distributing your app while allowing users to choose options like build type and tester group\u2014making the process both flexible and scalable.<\/p>\n<p><em><span style=\"color: #339966;\">default_platform(:android)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">platform :android do<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Helper Methods &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">def select_build_type<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.select(&#8220;Which build type do you want to generate?&#8221;, [&#8220;Debug&#8221;, &#8220;Release&#8221;])<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">def select_distribution_group<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.input(&#8220;Enter Firebase tester group (or emails separated by commas):&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">def confirm_build(build_type, group)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.important(&#8220;You are about to build a #{build_type} APK and distribute it to: #{group}&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">unless UI.confirm(&#8220;Proceed?&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.user_error!(&#8220;Cancelled by user.&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Main Lane &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">desc &#8220;Build and distribution workflow for YOUR PROJECT NAME&#8221;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">lane : upload_to_firebase do<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\"># Display beautiful header<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.header(&#8220;\ud83d\ude80 YOUR PROJECT NAME DEPLOYMENT WORKFLOW \ud83d\ude80&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">puts &#8220;&#8221;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.message(&#8220;Welcome to the YOUR PROJECT NAME deployment tool!&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.message(&#8220;This will guide you through building and distributing the app.&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">puts &#8220;&#8221;<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Get user inputs<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">build_type = select_build_type<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">group = select_distribution_group<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Confirm before proceeding<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">confirm_build(build_type, group)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Build process<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.header(&#8220;\u2699\ufe0f BUILD PROCESS&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">increment_version<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">gradle(task: &#8220;clean&#8221;)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">gradle(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">task: &#8220;assemble&#8221;,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">build_type: build_type<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># Distribution<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">UI.header(&#8220;\ud83d\udce6 DISTRIBUTION&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">firebase_app_distribution(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">app: &#8220;1:0000000000:xxxx:xxxxxxx&#8221;, # Replace with your actual Firebase App ID<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">groups: group,<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">release_notes: File.read(&#8220;..\/..\/release_notes.txt&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">UI.success(&#8220;\ud83c\udf89 Successfully built and distributed the #{build_type} APK!&#8221;)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\"># &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Versioning &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">lane :increment_version do<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">latest_release = firebase_app_distribution_get_latest_release(<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">app: &#8220;1:0000000000:xxxx:xxxxxxx&#8221; # Replace with your Firebase App ID<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">increment_version_code(version_code: latest_release[:buildVersion].to_i + 1)<\/span><\/em><br \/>\n<em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<p><em><span style=\"color: #339966;\">end<\/span><\/em><\/p>\n<hr \/>\n<h2>What This Setup Does<\/h2>\n<p><strong>Automatically Increments Version Code<\/strong><br \/>\nBefore every build, Fastlane fetches the latest Firebase release and increases the versionCode.<\/p>\n<p>This avoids manual version tracking.<\/p>\n<hr \/>\n<p><strong>Generates APKs Automatically<\/strong><br \/>\nThe script:<\/p>\n<ul>\n<li>Cleans previous Gradle builds<\/li>\n<li>Generates Debug or Release APKs<\/li>\n<li>Uses standard Gradle tasks<\/li>\n<\/ul>\n<hr \/>\n<p><strong>Uploads Directly to Firebase<\/strong><br \/>\nAfter the APK is created, Fastlane automatically uploads it to Firebase App Distribution.<\/p>\n<p>You can distribute builds to:<\/p>\n<ul>\n<li>Individual testers<\/li>\n<li>Multiple tester emails<\/li>\n<li>Firebase tester groups<\/li>\n<\/ul>\n<hr \/>\n<h2>Distribution Examples<\/h2>\n<p><strong>Single Tester<\/strong><\/p>\n<p><em><span style=\"color: #339966;\">testers: &#8220;tester@company.com&#8221;<\/span><\/em><\/p>\n<hr \/>\n<p><strong>Multiple Testers<\/strong><\/p>\n<p><em><span style=\"color: #339966;\">testers: &#8220;qa@company.com,dev@company.com,tester@company.com&#8221;<\/span><\/em><\/p>\n<hr \/>\n<p><strong>Firebase Group<\/strong><\/p>\n<p><em><span style=\"color: #339966;\">groups: &#8220;android-team&#8221;<\/span><\/em><\/p>\n<hr \/>\n<h2>Step 5 \u2014 Add Release Notes<\/h2>\n<p>Create a release notes file in your project root:<\/p>\n<p><em><span style=\"color: #339966;\">release_notes.txt<\/span><\/em><\/p>\n<p><strong>Example:<\/strong><\/p>\n<p>New Features<\/p>\n<ul>\n<li>Added voice search support<\/li>\n<li>Improved onboarding experience<\/li>\n<\/ul>\n<p>Fixes<\/p>\n<ul>\n<li>Fixed Android 14 crash<\/li>\n<li>Resolved notification delay issue<\/li>\n<\/ul>\n<hr \/>\n<h2>Step 6 \u2014 Run the Build<\/h2>\n<p><strong>Release APK<\/strong><\/p>\n<p><em><span style=\"color: #339966;\">cd android &amp;&amp; fastlane upload_release<\/span><\/em><\/p>\n<hr \/>\n<p><strong>Debug APK<\/strong><\/p>\n<p><em><span style=\"color: #339966;\">cd android &amp;&amp; fastlane upload_debug<\/span><\/em><\/p>\n<hr \/>\n<h2>Firebase Authentication Setup<\/h2>\n<p>If Firebase upload fails initially, authenticate using Firebase CLI.<\/p>\n<p>Install Firebase tools:<\/p>\n<p><em><span style=\"color: #339966;\">npm install -g firebase-tools<\/span><\/em><\/p>\n<p>Login to Firebase:<\/p>\n<p><em><span style=\"color: #339966;\">firebase login &#8211;reauth<\/span><\/em><\/p>\n<p>After authentication, Fastlane should upload builds successfully.<\/p>\n<hr \/>\n<h2>Final Thoughts<\/h2>\n<p>Fastlane makes Android release management dramatically easier for React Native teams. Instead of manually updating versions, generating APKs, and uploading builds to Firebase, the entire process becomes automated and reliable.<\/p>\n<p>With a proper Fastlane setup, your Android deployment workflow becomes:<\/p>\n<ul>\n<li>Faster<\/li>\n<li>Cleaner<\/li>\n<li>More scalable<\/li>\n<li>Less error-prone<\/li>\n<\/ul>\n<p>Once combined with automated iOS deployment, you\u2019ll have a complete mobile CI\/CD pipeline ready for production-scale releases.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In the previous article, I explained how to automate iOS builds and TestFlight uploads using Fastlane in a React Native project. Now let\u2019s continue the automation journey by setting up Android deployment automation using Fastlane. Managing Android releases manually can quickly become repetitive. A typical release process usually involves: Updating versionCode Cleaning Gradle builds [&hellip;]<\/p>\n","protected":false},"author":1816,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":8},"categories":[5881],"tags":[4845,6215,4848,5853],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/79780"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1816"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=79780"}],"version-history":[{"count":3,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/79780\/revisions"}],"predecessor-version":[{"id":80969,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/79780\/revisions\/80969"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=79780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=79780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=79780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}