{"id":1238,"date":"2024-11-08T22:37:40","date_gmt":"2024-11-09T05:37:40","guid":{"rendered":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/?p=1238"},"modified":"2024-11-08T22:37:43","modified_gmt":"2024-11-09T05:37:43","slug":"the-spoutible-data-breach-analysis-of-api-security-vulnerabilities-in-social-media","status":"publish","type":"post","link":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/2024\/11\/08\/the-spoutible-data-breach-analysis-of-api-security-vulnerabilities-in-social-media\/","title":{"rendered":"The Spoutible Data Breach: Analysis of API Security Vulnerabilities in Social Media"},"content":{"rendered":"\n<h1 class=\"wp-block-heading alignwide has-text-align-left has-secondary-color has-text-color has-link-color wp-elements-5adf989b3c46f1d2637073a80f9b8035\" style=\"font-size:45px\"><strong>Introduction<\/strong><\/h1>\n\n\n\n<p class=\"has-text-align-left has-normal-font-size wp-block-paragraph\">In January 2024, Spoutible, a social media platform launched as a direct rival to X (previously Twitter), suffered a major data breach that exposed the sensitive personal information of 207,000 users. The incident, discovered security researcher, was attributed to a flaw in the API configuration of Spoutible\u2019s platform raising serious questions about the safety of users&#8217; sensitive information on social media, especially for social media sites that deal with huge traffic of users&#8217; sensitive information. [1]<\/p>\n\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\">This article provides a detailed analysis of the Spoutible incident, outlines the primary API weaknesses utilized by the attackers, and discusses best practices to improve API security in the context of the modern social media environment.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"864\" height=\"494\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/1.png\" alt=\"\" class=\"wp-image-1255 lazyload\" title=\"\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/1.png 864w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/1-300x172.png 300w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/1-768x439.png 768w\" data-sizes=\"(max-width: 864px) 100vw, 864px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 864px; --smush-placeholder-aspect-ratio: 864\/494;\" \/><figcaption class=\"wp-element-caption\"><strong>Users\u2019 Data Leak [4]<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-7179f84dd832284a071460aed7f56454 wp-block-paragraph\" style=\"font-size:45px\"><strong>What Are APIs and Why Are They Important in Social Media?<\/strong><\/p>\n\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\">Application Programming Interfaces (API) are used for applications to establish communication, interact, and share data with other applications. In social media, APIs help platforms communicate and exchange data between the internal space of platforms and external applications that increase functionality and user experience for social media platforms. For instance, social media APIs let you post content, view member data, and integrate third-party apps that streamline usage across multiple social media platforms. [2]<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"864\" height=\"486\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-5.png\" alt=\"\" class=\"wp-image-1256 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-5.png 864w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-5-300x169.png 300w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-5-768x432.png 768w\" data-sizes=\"(max-width: 864px) 100vw, 864px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 864px; --smush-placeholder-aspect-ratio: 864\/486;\" \/><figcaption class=\"wp-element-caption\"><strong>How APIs Work [6]<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\">For Spoutible, the sensitive user data was exposed via the poorly configured API to anyone capable of making API calls with the username. This breach highlights two vulnerabilities in API, Broken Object-Level Authorization (BOLA) vulnerability [3] and excessive data exposure in APIs.<\/p>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-2f364494a54b07e36a1e42f51e640579 wp-block-paragraph\" style=\"font-size:46px\"><strong>Technical Details of the Spoutible API Breach<\/strong><\/p>\n\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\"><strong>Spoutible\u2019s vulnerability came from three primary issues:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-normal-font-size\"><strong>Broken Object-Level Authorization (BOLA): <\/strong>An API flaw that allows attackers to access data without the appropriate authorization checks. Comparing the current state of Spoutible to its prior state, due to a lack of object-level authorization, user-specific data (email, bcrypt hashed passwords, two-factor authentication (2FA) codes) were able to be accessed by simply querying Spoutible&#8217;s API via a username [3][4]<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"790\" height=\"296\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-20.png\" alt=\"\" class=\"wp-image-1257 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-20.png 790w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-20-300x112.png 300w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-20-768x288.png 768w\" data-sizes=\"(max-width: 790px) 100vw, 790px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 790px; --smush-placeholder-aspect-ratio: 790\/296;\" \/><figcaption class=\"wp-element-caption\"><strong>API Access Without Authentication [7]<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-normal-font-size\"><strong>Excessive Data Exposure: <\/strong>An API should only return data it needs to satisfy a request. While Spoutible&#8217;s API did expose sensitive fields such as hashed passwords and 2fa codes it did so in the responses, which significantly escalated the potential for a data breach if the API could be queried by an unauthorized party. These fields, particularly 2FA codes were the easiest for attackers to skirt past account security layers [4] [5]<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"790\" height=\"296\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-21.png\" alt=\"\" class=\"wp-image-1258 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-21.png 790w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-21-300x112.png 300w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-21-768x288.png 768w\" data-sizes=\"(max-width: 790px) 100vw, 790px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 790px; --smush-placeholder-aspect-ratio: 790\/296;\" \/><figcaption class=\"wp-element-caption\"><strong>API Excessive Data Exposure [7]<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-normal-font-size\"><strong>Absence of Rate Limiting:<\/strong> Absence of Rate Limiting: It helps in rate limiting requests, so a user is not able to hit the API so much in a short amount of time and prevent scraping and brute force attacks from happening automatically. [7]<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"864\" height=\"394\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-22.png\" alt=\"\" class=\"wp-image-1259 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-22.png 864w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-22-300x137.png 300w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-22-768x350.png 768w\" data-sizes=\"(max-width: 864px) 100vw, 864px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 864px; --smush-placeholder-aspect-ratio: 864\/394;\" \/><figcaption class=\"wp-element-caption\"><strong>API rate limiting request flow [8]<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-5aae82c5a2e34bf352ea93a40c9aed7c wp-block-paragraph\" style=\"font-size:45px\"><strong>The Data Exposed in the Breach<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\"><strong>The data compromised in this incident included<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-normal-font-size\"><strong>Username, Email Addresses, and Phone Numbers<\/strong>: Useful for phishing and social engineering attacks.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Gender<\/strong><\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>IP Addresses<\/strong>: Reveal the location of the user to attackers.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Password Hashes and 2FA Codes:<\/strong> While Spoutible used bcrypt hashing, these tokens could still be exploited if decrypted or brute-force. [4] <\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Password Reset Tokens<\/strong>: Anyone can take over the account<\/li>\n<\/ul>\n\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\">In addition to all the above, the user did not receive any notification of the password change, and there is no option to invalidate active sessions on other devices if the password was changed. <\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[1] [4]<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"864\" height=\"318\" data-src=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-23.png\" alt=\"\" class=\"wp-image-1260 lazyload\" data-srcset=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-23.png 864w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-23-300x110.png 300w, https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/image-23-768x283.png 768w\" data-sizes=\"(max-width: 864px) 100vw, 864px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 864px; --smush-placeholder-aspect-ratio: 864\/318;\" \/><figcaption class=\"wp-element-caption\"><strong>API Return Record [4]<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-0352191bab76d97aec1f528230b36d77 wp-block-paragraph\" style=\"font-size:45px\"><strong>Spoutible\u2019s Response to the Breach<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-normal-font-size\">Users were notified to reset their Spoutible passwords based on strict password policies.<\/li>\n\n\n\n<li class=\"has-normal-font-size\">Users were instructed to reset 2FA to generate a new secret if it was enabled on Spoutible.<\/li>\n\n\n\n<li class=\"has-normal-font-size\">Users were advised to reset their password across other accounts if they used the same password.<\/li>\n\n\n\n<li class=\"has-normal-font-size\">Users to stay vigilant for any suspicious activity on their accounts. &nbsp;<\/li>\n\n\n\n<li class=\"has-normal-font-size\">A team of security experts was appointed to review Spoutible\u2019s security architecture as well as identify the vulnerabilities and implement the best practices within the industry.<\/li>\n\n\n\n<li class=\"has-normal-font-size\">Spoutible revised its API by removing sensitive data fields included in responses and integrating strict authentication procedures around its API endpoints.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[4]<\/p>\n\n\n\n<p class=\"has-primary-color has-text-color has-link-color wp-elements-cfeb8ecfc45a6ff6233371caa16beeb1 wp-block-paragraph\" style=\"font-size:45px\"><strong>Lessons from the Spoutible Breach: API Security Best Practices<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-normal-font-size\"><strong>Deploy Authentication and Authorization<\/strong>: Before allowing access to sensitive information, a system should be able to verify the user\u2019s identity.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Use SSL\/TLS Encryption<\/strong>: To ensure the security of all communications between clients and APIs we can use encryption protocols like TLS, to ensure the protection of data during transmission.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Implement Rate Limiting<\/strong>: Rate limiting prevents malicious automated attacks by limiting the number of requests our APIs will handle per certain period.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Use Auditing and Logging<\/strong>: Companies can monitor and validate API requests to ensure that data will always be secure, and no one can misuse it.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>Anomalous Activity Monitor and Alert<\/strong>: Prompt detection of unusual activity allows the cybersecurity teams to detect and resolve issues before they rise to become serious threats.<\/li>\n\n\n\n<li class=\"has-normal-font-size\"><strong>API Penetration Testing<\/strong>: Regular penetration testing helps discover and fix API vulnerabilities before attackers can exploit them.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[9]&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-secondary-color has-text-color has-link-color wp-elements-31aad6e601d66716672e8bf68948e50b\" style=\"font-size:45px\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\">Modern social media platforms must learn from the Spoutible breach and prioritize API security. By implementing key security best practices such as strong authentication, SSL\/TLS encryption, rate limiting, auditing and logging, real-time monitoring, and regular penetration testing, platforms can significantly reduce the risk of security breaches. This serves as a critical reminder for all platforms handling personal data, especially through APIs, to make API security their top priority to protect user privacy and maintain trust.<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-secondary-color has-text-color has-link-color wp-elements-54e29cd6790b21b2672cef6807087736\" style=\"font-size:45px\">References<\/h1>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[1] Twingate Team. (2024, April 17). What happened in the Spoutible data breach? Twingate. Retrieved November 5, 2024, from  <a href=\"https:\/\/www.twingate.com\/blog\/tips\/spoutible-data-breach\">https:\/\/www.twingate.com\/blog\/tips\/spoutible-data-breach<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[2] Here\u2019s the APA citation for the Sprout Social article by Jacqueline Zote:Zote, J. (2022, November 15). <em>What is an API?<\/em> Sprout Social. Retrieved November 5, 2024, from <a href=\"https:\/\/sproutsocial.com\/insights\/what-is-an-api\/\">https:\/\/sproutsocial.com\/insights\/what-is-an-api\/<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[3] Imperva. (n.d.). Broken object level authorization (BOLA). Imperva. Retrieved November 5, 2024, from <a href=\"https:\/\/www.imperva.com\/learn\/application-security\/broken-object-level-authorization-bola\/\">https:\/\/www.imperva.com\/learn\/application-security\/broken-object-level-authorization-bola\/<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[4] Hunt, T. (2024, February 17). How Spoutible\u2019s leaky API spurted out a deluge of personal data. Troy Hunt. Retrieved November 6, 2024, from <a href=\"https:\/\/www.troyhunt.com\/how-spoutibles-leaky-api-spurted-out-a-deluge-of-personal-data\/\">https:\/\/www.troyhunt.com\/how-spoutibles-leaky-api-spurted-out-a-deluge-of-personal-data\/<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[5] FireTail. (2024, February 8). Leaky Spoutible API exposes user data: What went wrong? FireTail Blog. Retrieved November 6, 2024, from <a href=\"https:\/\/www.firetail.io\/blog\/leaky-spoutible-api-exposes-user-data-what-went-wrong\">https:\/\/www.firetail.io\/blog\/leaky-spoutible-api-exposes-user-data-what-went-wrong<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[6] Zahra, A. (2024, August 17). Social media integration: Enhancing apps with social media APIs. APILayer Blog. Retrieved November 6, 2024, from <a href=\"https:\/\/blog.apilayer.com\/social-media-integration-enhancing-apps-with-social-media-apis\/\">https:\/\/blog.apilayer.com\/social-media-integration-enhancing-apps-with-social-media-apis\/<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[7] Chinnasamy, V. (2022, January 20). Critical OWASP top 10 API security threats. Indusface Blog. Retrieved November 6, 2024, from <a href=\"https:\/\/www.indusface.com\/blog\/critical-owasp-top-10-api-security-threats\/\">https:\/\/www.indusface.com\/blog\/critical-owasp-top-10-api-security-threats\/<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[8] Forshaw, A. (2022, July 29). Right ways of API rate limiting. The Auth API. Retrieved November 6, 2024, from <a href=\"https:\/\/theauthapi.com\/articles\/api-rate-limiting\/\">https:\/\/theauthapi.com\/articles\/api-rate-limiting\/<\/a><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">[9] Qualysec. (n.d.). API security testing: Significance and guidelines. Qualysec. Retrieved November 6, 2024, from <a href=\"https:\/\/qualysec.com\/api-security-testing-significance-and-guidelines\/\">https:\/\/qualysec.com\/api-security-testing-significance-and-guidelines\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In January 2024, Spoutible, a social media platform launched as a direct rival to X (previously Twitter), suffered a major data breach that exposed the sensitive personal information of 207,000 users. The incident, discovered security researcher, was attributed to a flaw in the API configuration of Spoutible\u2019s platform raising serious questions about the safety &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/2024\/11\/08\/the-spoutible-data-breach-analysis-of-api-security-vulnerabilities-in-social-media\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The Spoutible Data Breach: Analysis of API Security Vulnerabilities in Social Media&#8221;<\/span><\/a><\/p>\n","protected":false},"author":691,"featured_media":1248,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[33],"class_list":["post-1238","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-isec603","entry"],"featured_image_src":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/10-600x400.png","featured_image_src_square":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-content\/uploads\/sites\/119\/2024\/11\/10-600x600.png","author_info":{"display_name":"Firas Shama","author_link":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/author\/firas-shama\/"},"_links":{"self":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts\/1238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/users\/691"}],"replies":[{"embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/comments?post=1238"}],"version-history":[{"count":10,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts\/1238\/revisions"}],"predecessor-version":[{"id":1279,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/posts\/1238\/revisions\/1279"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/media\/1248"}],"wp:attachment":[{"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/media?parent=1238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/categories?post=1238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpsites.ucalgary.ca\/jacobson-cpsc\/wp-json\/wp\/v2\/tags?post=1238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}