{"id":869,"date":"2026-06-23T12:54:19","date_gmt":"2026-06-23T12:54:19","guid":{"rendered":"https:\/\/quickref.me\/blog\/?p=869"},"modified":"2026-06-23T12:54:19","modified_gmt":"2026-06-23T12:54:19","slug":"proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation","status":"publish","type":"post","link":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/","title":{"rendered":"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Scrapers fail for plain reasons. A proxy times out. DNS leaks. TLS breaks. A pool mixes data center and home IPs. You then chase bugs in code that works fine.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This page reads like a quickref. It gives short tests you can copy into a shell. It also shows what to log so you can fix issues fast.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">What to test before you crawl<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Test each proxy on four axes: reach, route, trust, and speed. Reach means it can open TCP and pass auth. Route means your traffic exits on the IP you expect. Trust means it supports modern TLS and does not mangle headers. Speed means the proxy fits your crawl budget.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Know your pool math<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Pool size limits your safe rate. IPv4 has 2^32 addresses, or 4,294,967,296 total. You never get close to that in a pool. A \/24 block gives 256 IPs, and you often see far less in real stock.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Rate math stays simple. Requests per IP per site must stay low. A small pool forces longer gaps and more cache use.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Fast smoke tests with curl<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Start with one command per proxy. Keep it boring and repeatable. Use a stable endpoint you control, if you can. If you cannot, use a public site with care.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># HTTP proxy, basic reach test<\/span><\/p>\n<p><span style=\"font-weight: 400;\">curl -sS &#8211;proxy http:\/\/USER:PASS@HOST:PORT https:\/\/example.com\/ -o \/dev\/null -w &#8220;code=%{http_code} time=%{time_total}\\n&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># SOCKS5 proxy<\/span><\/p>\n<p><span style=\"font-weight: 400;\">curl -sS &#8211;proxy socks5h:\/\/USER:PASS@HOST:PORT https:\/\/example.com\/ -o \/dev\/null -w &#8220;code=%{http_code} time=%{time_total}\\n&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Track three numbers. You need HTTP code, total time, and connect time. If connect time spikes, you face network or auth issues. If total time spikes, the exit link or the site slows you down.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you validate many IPs, run a <\/span><a href=\"https:\/\/byteful.com\/proxy-tester\"><span style=\"font-weight: 400;\">proxy tester<\/span><\/a><span style=\"font-weight: 400;\">. Keep the same target URL and the same timeout across runs.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Pin timeouts so tests stay honest<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Default timeouts hide pain. Pin them so bad nodes fail fast. A test that hangs ruins your queue and your logs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># fail fast: 5s connect, 10s total<\/span><\/p>\n<p><span style=\"font-weight: 400;\">curl -sS &#8211;connect-timeout 5 &#8211;max-time 10 &#8211;proxy http:\/\/HOST:PORT https:\/\/example.com\/ -o \/dev\/null<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Catch leaks and mixed routes<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Leaks break geo rules and get you flagged. The most common leak comes from DNS. Use socks5h so curl sends DNS through the proxy. If you use socks5 without h, the local host may resolve names.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Header drift also matters. Some proxies add or change headers. Watch for Via, X-Forwarded-For, and odd Accept-Encoding changes. You can log request headers you send, then diff them at the edge.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># show response headers<\/span><\/p>\n<p><span style=\"font-weight: 400;\">curl -sS -D &#8211; &#8211;proxy http:\/\/HOST:PORT https:\/\/example.com\/ -o \/dev\/null<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mixed routing shows up as split traits. Your IP geo says one place, but RTT says another. Your TLS hand shake fails on some sites, but works on others. Treat that as a pool quality issue, not an app bug.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">TLS and HTTP quirks that trigger blocks<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Many sites key on TLS and HTTP shape. Old ciphers, stale SNI, and odd ALPN picks stand out. Keep your client stack up to date. A modern curl and OpenSSL set helps more than proxy churn.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Test TLS reach on the proxy path. If you see hand shake errors, swap the node. Do not patch around it with retries.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># quick TLS check (direct)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">openssl s_client -servername example.com -connect example.com:443 &amp;lt; \/dev\/null<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># if your proxy tool supports CONNECT tests, run them too<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Rotation rules that match real sites<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Rotate for a reason, not by habit. Use sticky sessions for carts, logins, and flows with tokens. Rotate on hard fails, risk flags, and per-site caps. Rotate less on sites that allow high fetch rates and cache well.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pick a key for stickiness. Use account id, cookie jar id, or task id. Keep that key stable for the full flow, then release it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Watch error codes. HTTP 401 often means bad auth to the proxy or target. HTTP 403 often means a block at the site. HTTP 429 means you hit a rate cap and need a slower pace or more IPs.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Logs you need for fast triage<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Log each fetch with a small set of fields. Include proxy id, exit IP, target host, status code, bytes, connect time, and total time. Add a short tag for the crawl job and the retry count.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Keep raw pages only when you need them. Most ops work needs metrics, not full HTML. If you must store pages, set a short TTL and strip personal data.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Pasteable preflight block<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Run this before a new crawl or a new proxy batch. It keeps your checks in one spot. It also fits well in a CI job or a cron task.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># set once<\/span><\/p>\n<p><span style=\"font-weight: 400;\">export PXY=&#8221;http:\/\/USER:PASS@HOST:PORT&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">export URL=&#8221;https:\/\/example.com\/&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># reach and speed<\/span><\/p>\n<p><span style=\"font-weight: 400;\">curl -sS &#8211;connect-timeout 5 &#8211;max-time 10 &#8211;proxy &#8220;$PXY&#8221; &#8220;$URL&#8221; -o \/dev\/null -w &#8220;code=%{http_code} connect=%{time_connect} total=%{time_total}\\n&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># header drift<\/span><\/p>\n<p><span style=\"font-weight: 400;\">curl -sS -D &#8211; &#8211;proxy &#8220;$PXY&#8221; &#8220;$URL&#8221; -o \/dev\/null | head -n 20<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># DNS via proxy (SOCKS only)<\/span><\/p>\n<p><span style=\"font-weight: 400;\"># use socks5h:\/\/ in PXY when you need remote DNS<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scrapers fail for plain reasons. A proxy times out. DNS leaks. TLS breaks. A pool mixes data center and home IPs. You then chase bugs in code that works fine. &hellip; <a href=\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\" class=\"more-link\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-869","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation - Blog QuickRef<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation - Blog QuickRef\" \/>\n<meta property=\"og:description\" content=\"Scrapers fail for plain reasons. A proxy times out. DNS leaks. TLS breaks. A pool mixes data center and home IPs. You then chase bugs in code that works fine. &hellip; Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog QuickRef\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-23T12:54:19+00:00\" \/>\n<meta name=\"author\" content=\"tedm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tedm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\"},\"author\":{\"name\":\"tedm\",\"@id\":\"https:\/\/quickref.me\/blog\/#\/schema\/person\/781b09d7f4bdae81ce0d191fb1b1d5ec\"},\"headline\":\"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation\",\"datePublished\":\"2026-06-23T12:54:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\"},\"wordCount\":871,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/quickref.me\/blog\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\",\"url\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\",\"name\":\"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation - Blog QuickRef\",\"isPartOf\":{\"@id\":\"https:\/\/quickref.me\/blog\/#website\"},\"datePublished\":\"2026-06-23T12:54:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/quickref.me\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/quickref.me\/blog\/#website\",\"url\":\"https:\/\/quickref.me\/blog\/\",\"name\":\"Blog QuickRef\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/quickref.me\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/quickref.me\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/quickref.me\/blog\/#organization\",\"name\":\"Blog QuickRef\",\"url\":\"https:\/\/quickref.me\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/quickref.me\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/quickref.me\/blog\/wp-content\/uploads\/2023\/10\/cropped-wuickref.png\",\"contentUrl\":\"https:\/\/quickref.me\/blog\/wp-content\/uploads\/2023\/10\/cropped-wuickref.png\",\"width\":236,\"height\":63,\"caption\":\"Blog QuickRef\"},\"image\":{\"@id\":\"https:\/\/quickref.me\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/quickref.me\/blog\/#\/schema\/person\/781b09d7f4bdae81ce0d191fb1b1d5ec\",\"name\":\"tedm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/quickref.me\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2689288940b2c1525bf9633d5f4c4b96d14ab0593b0ec8d5404a1f968810e963?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2689288940b2c1525bf9633d5f4c4b96d14ab0593b0ec8d5404a1f968810e963?s=96&d=mm&r=g\",\"caption\":\"tedm\"},\"sameAs\":[\"https:\/\/quickref.me\/blog\"],\"url\":\"https:\/\/quickref.me\/blog\/author\/tedm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation - Blog QuickRef","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:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/","og_locale":"en_US","og_type":"article","og_title":"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation - Blog QuickRef","og_description":"Scrapers fail for plain reasons. A proxy times out. DNS leaks. TLS breaks. A pool mixes data center and home IPs. You then chase bugs in code that works fine. &hellip; Read More","og_url":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/","og_site_name":"Blog QuickRef","article_published_time":"2026-06-23T12:54:19+00:00","author":"tedm","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tedm","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#article","isPartOf":{"@id":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/"},"author":{"name":"tedm","@id":"https:\/\/quickref.me\/blog\/#\/schema\/person\/781b09d7f4bdae81ce0d191fb1b1d5ec"},"headline":"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation","datePublished":"2026-06-23T12:54:19+00:00","mainEntityOfPage":{"@id":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/"},"wordCount":871,"commentCount":0,"publisher":{"@id":"https:\/\/quickref.me\/blog\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/","url":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/","name":"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation - Blog QuickRef","isPartOf":{"@id":"https:\/\/quickref.me\/blog\/#website"},"datePublished":"2026-06-23T12:54:19+00:00","breadcrumb":{"@id":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/quickref.me\/blog\/proxy-hygiene-for-scraping-a-quickref-for-fast-checks-leaks-and-rotation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/quickref.me\/blog\/"},{"@type":"ListItem","position":2,"name":"Proxy hygiene for scraping: a quickref for fast checks, leaks, and rotation"}]},{"@type":"WebSite","@id":"https:\/\/quickref.me\/blog\/#website","url":"https:\/\/quickref.me\/blog\/","name":"Blog QuickRef","description":"","publisher":{"@id":"https:\/\/quickref.me\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/quickref.me\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/quickref.me\/blog\/#organization","name":"Blog QuickRef","url":"https:\/\/quickref.me\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/quickref.me\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/quickref.me\/blog\/wp-content\/uploads\/2023\/10\/cropped-wuickref.png","contentUrl":"https:\/\/quickref.me\/blog\/wp-content\/uploads\/2023\/10\/cropped-wuickref.png","width":236,"height":63,"caption":"Blog QuickRef"},"image":{"@id":"https:\/\/quickref.me\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/quickref.me\/blog\/#\/schema\/person\/781b09d7f4bdae81ce0d191fb1b1d5ec","name":"tedm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/quickref.me\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2689288940b2c1525bf9633d5f4c4b96d14ab0593b0ec8d5404a1f968810e963?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2689288940b2c1525bf9633d5f4c4b96d14ab0593b0ec8d5404a1f968810e963?s=96&d=mm&r=g","caption":"tedm"},"sameAs":["https:\/\/quickref.me\/blog"],"url":"https:\/\/quickref.me\/blog\/author\/tedm\/"}]}},"_links":{"self":[{"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/posts\/869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/comments?post=869"}],"version-history":[{"count":1,"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/posts\/869\/revisions"}],"predecessor-version":[{"id":870,"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/posts\/869\/revisions\/870"}],"wp:attachment":[{"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/media?parent=869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/categories?post=869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quickref.me\/blog\/wp-json\/wp\/v2\/tags?post=869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}