{"id":112790,"date":"2026-09-11T12:00:00","date_gmt":"2026-09-11T12:00:00","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=112790"},"modified":"2026-09-08T15:44:10","modified_gmt":"2026-09-08T15:44:10","slug":"how-to-delete-personal-data-gdpr-ccpa-compliance","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/data-security-privacy-compliance\/how-to-delete-personal-data-gdpr-ccpa-compliance\/","title":{"rendered":"How to delete personal data for GDPR &amp; CCPA compliance"},"content":{"rendered":"\n<p><strong>Deleting a customer&#8217;s personal data under GDPR or CCPA means erasing it everywhere it&#8217;s stored \u2014 not just the primary database, but replicas, backups, caches, search indexes, logs, and every third-party tool that touched it \u2014 usually within 30 to 45 days of the request.<\/strong> <\/p>\n\n\n\n<p><strong>This guide covers<\/strong> what a genuine deletion request requires, what GDPR (Article 17) and CCPA (\u00a71798.105) actually oblige you to do, where copies of personal data typically hide, and why backups and derived data (like AI\/ML models trained on that data) make full erasure harder than a simple <code>DELETE<\/code> statement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-counts-as-a-deletion-request-under-gdpr-and-ccpa\">What counts as a &#8216;deletion request&#8217; under GDPR and CCPA?<\/h2>\n\n\n\n<p><strong>A deletion request means erasing a person&#8217;s data everywhere it is stored: primary tables, replicas, caches, logs, search indexes, backups, derived datasets, and third-party processors.<\/strong><\/p>\n\n\n\n<p>A <strong><a href=\"https:\/\/www.brentozar.com\/archive\/2020\/02\/what-are-soft-deletes-and-how-are-they-implemented\/\" target=\"_blank\" rel=\"noreferrer noopener\">soft-delete<\/a> flag<\/strong> is <strong>not erasure<\/strong>. Backups usually cannot be edited record by record, so regulators accept putting them &#8220;beyond use&#8221; until they age out. <\/p>\n\n\n\n<p>For data spread across many systems, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Crypto-shredding\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>crypto-shredding<\/strong><\/a> (encrypt per person, then destroy the key) is usually the most reliable way to make every copy unreadable at once.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-gdpr-amp-ccpa-what-the-law-actually-requires\">GDPR &amp; CCPA: what the law actually requires<\/h2>\n\n\n\n<p><strong>Under the European Union&#8217;s <a href=\"https:\/\/gdpr-info.eu\/\" target=\"_blank\" rel=\"noreferrer noopener\">General Data Protection Regulation (GDPR)<\/a>, <a href=\"https:\/\/gdpr-info.eu\/art-17-gdpr\/\" target=\"_blank\" rel=\"noreferrer noopener\">Article 17<\/a> gives a person (the <em>&#8220;<\/em>data subject&#8221;) the right to erasure, aka &#8220;the right to be forgotten&#8221;.<br><\/strong><br>The right to erasure is not an <em>absolute<\/em> right, however. It can be refused in circumstances where, for example, you&#8217;re legally required to keep the data for tax, accounting, or employment reasons. You can respond, but generally only have <strong>one month<\/strong> to do so (extendable by two more months for complex requests).<\/p>\n\n\n\n<p>The only times the right to erasure applies with certainty is if, for example, the data is no longer needed for the purpose you collected it, or the person withdraws consent.<\/p>\n\n\n\n<p><strong>In California, meanwhile, a resident can request deletion of their data under Section 1798.105 of the <a href=\"https:\/\/oag.ca.gov\/privacy\/ccpa\" target=\"_blank\" rel=\"noreferrer noopener\">California Consumer Privacy Act (CCPA)<\/a>.<\/strong><\/p>\n\n\n\n<p>The data holder has <strong>45 days<\/strong> to comply (extendable by another 45).<\/p>\n\n\n\n<p>Both of these laws push the obligation to the company liable for processing the personal data. They&#8217;re obligated to instruct all processors, service providers, and contractors to delete the data as well.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Aspect<\/strong><\/td><td><strong>GDPR (EU\/UK)<\/strong><\/td><td><strong>CCPA \/ CPRA (California)<\/strong><\/td><\/tr><\/thead><tbody><tr><td>The right<\/td><td>Right to erasure (Art. 17)<\/td><td>Right to delete (\u00a71798.105)<\/td><\/tr><tr><td>Response time<\/td><td>1 month (+2 months if complex)<\/td><td>45 days (+45 with notice)<\/td><\/tr><tr><td>Absolute?<\/td><td>No, several exceptions<\/td><td>No, several exceptions<\/td><\/tr><tr><td>Common exceptions<\/td><td>Legal retention duty, freedom of expression, legal claims<\/td><td>Complete a transaction, detect fraud\/security incidents, legal obligation<\/td><\/tr><tr><td>Reaches third parties?<\/td><td>Yes; you must inform other controllers (Art. 17(2))<\/td><td>Yes; service providers and contractors must delete too<\/td><\/tr><tr><td>Backups<\/td><td>Accepted practice: put &#8220;beyond use&#8221; until overwritten<\/td><td>Deletion may be delayed until the backup is next restored or accessed<\/td><\/tr><tr><td>Maximum penalty<\/td><td>\u20ac20 million or 4% of global annual turnover<\/td><td>Per-violation fines enforced by the CPPA<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-happens-if-you-don-t-comply-real-enforcement-cases\">What happens if you don&#8217;t comply (real enforcement cases)<\/h2>\n\n\n\n<p><strong>The penalties for breaking personal data laws are significant.<\/strong> Take the European Data Protection Board&#8217;s (EDPB) <a href=\"https:\/\/www.edpb.europa.eu\/news\/edpb-identifies-challenges-hindering-the-full-implementation-of-the-right-to-erasure_en\" target=\"_blank\" rel=\"noreferrer noopener\">enforcement report on right to erasure<\/a>, which found that Finland&#8217;s regulator fined a parking enforcement company for keeping data it no longer needed.<\/p>\n\n\n\n<p>Meanwhile in the Netherlands, their regulator (<a href=\"https:\/\/www.autoriteitpersoonsgegevens.nl\/\" target=\"_blank\" rel=\"noreferrer noopener\">Autoriteit Persoonsgegevens &#8211; AP<\/a>), <a href=\"https:\/\/cedpo.eu\/data-protection-weekly-21-2024\/#:~:text=Netherlands%3A%20AP%20fines%20recruitment%20company%20for%20failing%20to%20delete%20personal%20data\" target=\"_blank\" rel=\"noreferrer noopener\">fined a recruitment firm \u20ac6,000 for not<em> <\/em>having a method in place to handle data removal requests.<\/a><\/p>\n\n\n\n<p>And what about in California? Well, in January 2026, the <a href=\"https:\/\/cppa.ca.gov\/announcements\/2026\/20260108.html\" target=\"_blank\" rel=\"noreferrer noopener\">CPPA fined a data broker $45,000<\/a> for operating without registering.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-you-can-t-treat-deletion-exceptions-as-automatic\">Why you can&#8217;t treat deletion exceptions as automatic<\/h2>\n\n\n\n<p>The EDPB found that certain companies treat exceptions as &#8220;automatic&#8221;. If you refuse a erasure request, you should <strong>document specific legal basis for the refusal<\/strong> &#8211; plus delete every part of the data that the exception does <em>not<\/em> cover.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-you-can-t-delete-what-you-can-t-find-building-a-data-map\">You can&#8217;t delete what you can&#8217;t find: building a data map<\/h2>\n\n\n\n<p><strong>Personal data is rarely all in one place. The data sits in obvious columns (name, email, phone), but also in free-text fields, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/oracle-databases\/json-for-absolute-beginners-part-1-introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\">JSON blobs<\/a>, uploaded file attachments, log lines, and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Denormalization\" target=\"_blank\" rel=\"noreferrer noopener\">denormalized<\/a> copies. <\/strong><\/p>\n\n\n\n<p>A person is not &#8220;living&#8221; in one row; their data is across many related records, in many related or unrelated places. The first step for organizing all this data is the creation of a <strong><a href=\"https:\/\/www.tableau.com\/learn\/articles\/guide-to-data-mapping\" target=\"_blank\" rel=\"noreferrer noopener\">data map<\/a><\/strong>.<\/p>\n\n\n\n<p>A data map, in this instance, is an inventory of which tables and systems hold personal data. This includes information about what each field is, the legal basis for holding that data, and how long to keep it for.<\/p>\n\n\n\n<p>Alternatively, the EDPB suggests creating a <strong>data-deletion matrix<\/strong> (or <strong>data retention schedule<\/strong>) that cross-indexes the type of data, legal basis, and retention periods. <\/p>\n\n\n\n<p><strong>For those familiar with SQL, our guide on <a href=\"https:\/\/www.red-gate.com\/simple-talk\/data-security-privacy-compliance\/how-to-build-a-privacy-aware-analytics-layer-with-sql-4-top-techniques\/\" target=\"_blank\" rel=\"noreferrer noopener\">building a privacy-aware analytics layer with SQL<\/a> is a good place to start.<\/strong><\/p>\n\n\n\n<section id=\"my-first-block-block_f15496c4f2cb03e19190adc410cf2d9c\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Protect your data. Demonstrate compliance.<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            With Redgate, stay ahead of threats with real-time monitoring and alerts, protect sensitive data with automated discovery &#038; masking, and demonstrate compliance with traceability across every environment.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/solutions\/use-cases\/security-and-compliance\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Learn more: Protect your data. Demonstrate compliance.\">Learn more<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-soft-delete-doesn-t-satisfy-gdpr-or-ccpa\">Why soft delete doesn&#8217;t satisfy GDPR or CCPA<\/h2>\n\n\n\n<p>In certain cases, applications do <em>not<\/em> perform a complete deletion. The application might instead put a <code>deleted = true<\/code> flag <em>marking<\/em> deletion, known as a <strong><a href=\"https:\/\/www.brentozar.com\/archive\/2020\/02\/what-are-soft-deletes-and-how-are-they-implemented\/\" target=\"_blank\" rel=\"noreferrer noopener\">soft delete<\/a><\/strong>.<\/p>\n\n\n\n<p>Soft delete has its uses, especially for undo, auditing, and not breaking <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/the-secret-life-of-database-keys\/#what-are-foreign-database-keys:~:text=foreign%20key%20references.-,What%20are%20foreign%20database%20keys%3F,-Foreign%20key%20declarations\" target=\"_blank\" rel=\"noreferrer noopener\">foreign keys<\/a>. However, <strong>soft delete is <em>not<\/em> true erasure as required by GDPR and CCPA.<\/strong><\/p>\n\n\n\n<p>Similarly, some companies offer users the &#8220;delete your account&#8221; button while keeping the underlying records in internal systems, but this also does not satisfy GDPR and CCPA requirements.<\/p>\n\n\n\n<p><strong>The correct way to permanently erase personal data is with a hard delete, where the records (data) are fully removed.<\/strong> However, with this, we run into the issue of referential integrity. You may have deleted a customer row, but what if the data still exists in orders, invoices, and tickets?<\/p>\n\n\n\n<p><strong>To ensure referential integrity, the cascade delete is a viable option. <\/strong>It&#8217;s one single transaction which deletes the person and every dependent record in the correct order.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-where-personal-data-copies-actually-live-and-how-to-erase-each\">Where personal data copies actually live (and how to erase each)<\/h2>\n\n\n\n<p><strong>Cascade deletes, however, only cover primary databases. <\/strong>Every day, we make tons of copies of data, and each individual copy requires deletion. <\/p>\n\n\n\n<p>In more detail, here&#8217;s where copies of data live, why they exist, and how to erase the data to satisfy data privacy laws and regulation:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Stored in<\/strong><\/td><td><strong>Why it is around<\/strong><\/td><td><strong>How to erase<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Read replicas<\/td><td>Copies of production for scaling reads<\/td><td>Deletes usually replicate automatically<\/td><\/tr><tr><td><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/managing-transaction-logs-in-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">Transaction logs<\/a> (write-ahead log, binary log)<\/td><td>Every change is journaled for recovery<\/td><td>You cannot edit history. Log&#8217;s own retention window will age it out<\/td><\/tr><tr><td>Caches (in-memory, content-delivery network)<\/td><td>Copies kept for speed<\/td><td>Invalidate keys on delete, or rely on a short&nbsp; Time To Live (TTL) so stale copies expire<\/td><\/tr><tr><td>Search indexes<\/td><td>A separate searchable copy of the data<\/td><td>Issue an explicit delete to the index<\/td><\/tr><tr><td>Message queues \/ streams<\/td><td>Events carrying personal data in transit<\/td><td>Use compaction or short retention<\/td><\/tr><tr><td>Data warehouse \/ analytics<\/td><td>Loaded by\u00a0<a href=\"https:\/\/www.red-gate.com\/simple-talk\/sysadmin\/powershell\/building-an-etl-with-powershell\/\" target=\"_blank\" rel=\"noreferrer noopener\">Extract, Transform, Load (ETL)<\/a> jobs on a schedule<\/td><td>Delete in the warehouse separately<\/td><\/tr><tr><td>Application and audit logs<\/td><td>Personal data written into log lines<\/td><td>Minimize what you log + log retention<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-crypto-shredding-makes-every-copy-unreadable-at-once\">How crypto-shredding makes every copy unreadable at once<\/h2>\n\n\n\n<p><strong>Crypto-shredding is the process of encrypting each person&#8217;s data with an encryption key <em>unique to them<\/em>. When they ask to be forgotten, you destroy the key.<\/strong><\/p>\n\n\n\n<p>The encrypted data still exists but is unreadable without the key. A common crypto-shredding design uses two layers (aka <a href=\"https:\/\/cloud.ibm.com\/docs\/key-protect?topic=key-protect-envelope-encryption&amp;locale=en\" target=\"_blank\" rel=\"noreferrer noopener\">envelope encryption<\/a>):<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>A per-person <strong><a href=\"https:\/\/nhimg.org\/faq\/what-is-the-difference-between-a-data-encryption-key-and-a-key-encryption-key-in\/#:~:text=A-,data%20encryption%20key,-encrypts%20the%20actual\" target=\"_blank\" rel=\"noreferrer noopener\">Data Encryption Key (DEK)<\/a><\/strong> encrypting the data<\/li>\n\n\n\n<li>A master <strong><a href=\"https:\/\/nhimg.org\/faq\/what-is-the-difference-between-a-data-encryption-key-and-a-key-encryption-key-in\/#:~:text=or%20operation.%20A-,key%20encryption%20key,-does%20not%20touch\" target=\"_blank\" rel=\"noreferrer noopener\">Key Encryption Key (KEK)<\/a><\/strong> held in a <strong>Key Management Service (KMS)<\/strong><\/li>\n<\/ul>\n<\/div>\n\n\n<p>To delete a person, you delete their DEK. The catch with crypto-shredding is that your key store must never fail, leak, or lose a key by accident.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-blind-spots-derived-data-and-third-party-processors\">The blind spots: derived data and third-party processors<\/h2>\n\n\n\n<p><strong>Derived data and third parties are two places where personal data is often <em>not<\/em> erased.<\/strong> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-is-derived-data\">What is derived data?<\/h3>\n\n\n\n<p><strong>Derived data<\/strong> includes recommendation models, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">machine-learning (AI)<\/a> features, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/t-sql-programming-sql-server\/ai-in-sql-server-2025-embeddings\/\" target=\"_blank\" rel=\"noreferrer noopener\">embeddings<\/a>, and <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/postgresql\/eager-aggregation-in-sql-queries\/\" target=\"_blank\" rel=\"noreferrer noopener\">aggregate<\/a> tables built from a person&#8217;s raw data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-are-third-party-processors\">What are third-party processors?<\/h3>\n\n\n\n<p><strong>Third-party processors<\/strong> are any entity you share data with &#8211; from email and marketing platforms, to analytics, support desk, and customer relationship (CRM tools), to name a few. <\/p>\n\n\n\n<p>Regulators like the GDPR and CCPA make <strong>company owners responsible<\/strong> for any data shared with a third-party processor. <\/p>\n\n\n\n<p>That&#8217;s why, when you erase someone and their data, <em>you must<\/em> ensure that the same action is carried out by each of these third parties. It&#8217;s best to do this through their <a href=\"https:\/\/developers.liveperson.com\/personal-data-deletion-api-overview.html#:~:text=The%20Personal%20Data%20Deletion%20API%20allows%20brands%20to%20comply%20with%20the%20European%20Union%27s%20Right%20to%20be%20Forgotten%20requirement%20(a%20part%20of%20the%20GDPR).%20This%20API%20will%20permanently%20delete%20any%20personal%20data%20that%20the%20consumer%20requests%20to%20be%20deleted.%20Once%20the%20data%20has%20been%20deleted%20there%20is%20no%20way%20to%20restore%20it.\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>deletion API<\/strong><\/a>, if they have one (and keep any confirmation\/evidence of this.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-find-every-copy-of-personal-data-without-doing-it-manually\">How to find every copy of personal data without doing it manually<\/h2>\n\n\n\n<p><strong>Most regulatory problems come from not knowing <em>where<\/em> individual personal data actually is, and how far it&#8217;s spread.<\/strong><\/p>\n\n\n\n<p><strong>To help find and classify personal data, I recommend trying <a href=\"https:\/\/www.red-gate.com\/products\/sql-data-catalog\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Data Catalog<\/a> &#8211; built to help you map and reduce the number of copies you have to find.<\/strong><\/p>\n\n\n\n<p>It does <em>not<\/em>, however, actually run an erasure process for you &#8211; this still has to be done yourself.<\/p>\n\n\n\n<p>I&#8217;ll also shout out <a href=\"https:\/\/www.red-gate.com\/products\/data-masker\/\" target=\"_blank\" rel=\"noreferrer noopener\">Data Masker<\/a>, which replaces sensitive data in development and test databases (SQL Server and Oracle) with realistic but fake values, so your non-production environments hold no real people to forget in the first place. It integrates directly with Data Catalog, and both have free trials you can run against your schemas.<\/p>\n\n\n\n<p>However, it&#8217;s once again important to note, Data Masker will not run an erasure process for you &#8211; and masking is also not the same as erasure in the first place.<\/p>\n\n\n\n<section id=\"my-first-block-block_347e55c304481e961872b4c3546f9f7f\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Enhance your data security with an automated masking approach<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Data Masker automatically masks sensitive data across your estate, enabling you to deliver secure data to downstream environments in non-production databases for development and testing.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/products\/data-masker\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Learn more &amp; try for free: Enhance your data security with an automated masking approach\">Learn more &amp; try for free<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. What is the right to be forgotten?<\/h3>\n            <div class=\"faq-answer\">\n                <p>It is the legal right, under GDPR and similar laws, for a person to have a company erase the personal data it holds about them.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. Is deleting a user account the same as erasing their data?<\/h3>\n            <div class=\"faq-answer\">\n                <p>No. Closing an account can leave the underlying personal data fully available in your systems. This does not satisfy an erasure request.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. How long do I have to comply?<\/h3>\n            <div class=\"faq-answer\">\n                <p>GDPR gives you one month (extendable by two); CCPA gives you 45 days (extendable by another 45). Other laws, for other areas, vary.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. Does deletion extend to third parties?<\/h3>\n            <div class=\"faq-answer\">\n                <p>Yes; both GDPR and CCPA require you to pass the deletion request to your processors, service providers, and contractors.<\/p>\n            <\/div>\n            <\/section>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to fully erase a customer&#8217;s data for GDPR and CCPA requests \u2014 across backups, replicas, caches, and third-party processors.&hellip;<\/p>\n","protected":false},"author":346911,"featured_media":105002,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143514,143523,53,46],"tags":[159386,4168,57573,5765],"coauthors":[159385],"class_list":["post-112790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-privacy-and-protection","category-databases","category-featured","category-data-security-privacy-compliance","tag-data-privacy","tag-database","tag-gdpr","tag-security-and-compliance"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/346911"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=112790"}],"version-history":[{"count":15,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112790\/revisions"}],"predecessor-version":[{"id":112887,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112790\/revisions\/112887"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/105002"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=112790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=112790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=112790"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=112790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}