{"id":9361,"date":"2026-08-11T07:15:00","date_gmt":"2026-08-11T05:15:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=9361"},"modified":"2026-08-11T07:15:00","modified_gmt":"2026-08-11T05:15:00","slug":"amazon-ads-refresh-token-expiry-ledger-en","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/","title":{"rendered":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Eleven days ago Amazon changed how long a refresh token for the Advertising API stays valid. If your integration authorised an advertiser on 1 August, that token stops working on 1 August 2027, no matter how often you use it in between. There is no email, no deprecation header, no warning in the console. The only party who will notice is you, at the moment a nightly export returns nothing. This article corrects a widely repeated wrong date and then builds the one thing that actually protects you: a token ledger with a cron job.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. What changed, and the date everyone gets wrong<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Amazon announced the change on 26 May 2026. It took effect on <strong>30 July 2026<\/strong>. Refresh tokens issued on or after that date expire 365 days after the date the advertiser gave consent, not 365 days after the token was minted, and not 365 days after last use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A wrong date is circulating persistently: 30 June. It shows up in forum posts, in vendor changelogs, and in search engine summaries that confidently answer &#8220;June 30&#8221; when you ask when Amazon refresh tokens started expiring. That is a full month off. If you planned a migration window around the end of June, or told a client their tokens were already covered, check your assumptions. The correct cut-off is 30 July 2026, and the first mass expiries will therefore land from 30 July 2027 onward.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Announced:<\/strong> 26 May 2026.<\/li>\n<li><strong>Effective:<\/strong> 30 July 2026, not 30 June.<\/li>\n<li><strong>Lifetime:<\/strong> 365 days from the advertiser&#8217;s consent date.<\/li>\n<li><strong>Recovery after expiry:<\/strong> a fresh advertiser consent, through an interactive dialog. There is no silent path back.<\/li>\n<li><strong>Notification from Amazon:<\/strong> none.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Why using the token does not help<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the part that catches experienced teams. In almost every OAuth deployment you have touched, a refresh token has either no expiry or a sliding one: each exchange for a new access token resets the idle timer, so an integration that runs every hour effectively never expires. Amazon&#8217;s clock does not slide. It is anchored to the consent date and runs to zero regardless of traffic. A pipeline that has refreshed successfully every 55 minutes for a year will fail on day 366 exactly like one that has been idle since day one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The failure mode is therefore quiet and delayed. Your monitoring sees a healthy integration right up to the boundary, then a refresh call that no longer returns an access token, and the fix is not a retry or a redeploy. Someone at the advertiser has to click through a consent dialog again. On a Saturday, for a client in another timezone, that is not a five-minute recovery.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Worth noting in the same breath, since it hits the same codebases: six legacy account management endpoints have been closed to new use since July 2026 and will return HTTP 404 from July 2027. Their replacements have been generally available since 4 June 2026. Plan that migration in the same quarter as your consent renewals.<\/p>\n\n\n\n<figure class=\"lw-diagram\">\n<img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/hand-amztoken-en.png\" width=\"1120\" height=\"670\" decoding=\"async\" loading=\"lazy\"\n     alt=\"A 365-day bar starting at the consent date and ending at token death, with API calls bouncing off it because use does not extend the lifetime, and a ledger table below\">\n<figcaption>Every other refresh token you own is renewed by being used. This one is not: the clock starts at the advertiser consent date and runs out 365 days later regardless, which is why the expiry date belongs in a table you control.<\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3. A token ledger on your side<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Amazon will not tell you when a token dies, so store the only fact that matters, the consent date, and derive everything else. One table per environment is enough. The expiry column is generated, so it can never drift out of sync with the consent date.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-sql\">CREATE TABLE amazon_ads_token_ledger (\n    advertiser_id   text PRIMARY KEY,\n    account_name    text NOT NULL,\n    region          text NOT NULL CHECK (region IN ('na', 'eu', 'fe')),\n    consent_date    date NOT NULL,\n    token_issued_at timestamptz NOT NULL,\n    expires_on      date GENERATED ALWAYS AS (consent_date + 365) STORED,\n    last_refresh_ok timestamptz,\n    owner_email     text NOT NULL,\n    status          text NOT NULL DEFAULT 'active'\n);\n\nCREATE INDEX ON amazon_ads_token_ledger (expires_on) WHERE status = 'active';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Backfill it once, by hand if necessary. For every advertiser you onboarded on or after 30 July 2026, write the consent date you have in your onboarding records. For older tokens, record the date anyway and set <code>status = 'legacy'<\/code>: the moment such an advertiser re-consents for any reason, the new rule applies to the replacement token, and you want the row ready.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. The check script and the crontab line<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The script prints nothing when everything is fine, which means cron stays silent. At 60 days it starts mailing you, and it exits non-zero once something has actually expired, so a wrapper or your monitoring can page on it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-python\">#!\/usr\/bin\/env python3\n\"\"\"Warn about Amazon Ads consents approaching their 365-day limit.\"\"\"\nimport sys\nfrom datetime import date\nimport psycopg\n\nDSN = \"postgresql:\/\/\/ops\"\nWARN_DAYS = 60\n\nQUERY = \"\"\"\nSELECT advertiser_id, account_name, region, consent_date, expires_on,\n       expires_on - CURRENT_DATE AS days_left, owner_email\nFROM amazon_ads_token_ledger\nWHERE status = 'active'\n  AND expires_on - CURRENT_DATE &lt;= %s\nORDER BY days_left\n\"\"\"\n\ndef main() -&gt; int:\n    with psycopg.connect(DSN) as conn:\n        rows = conn.execute(QUERY, (WARN_DAYS,)).fetchall()\n    if not rows:\n        return 0\n    print(f\"Amazon Ads re-consent needed, checked {date.today()}:\")\n    for aid, name, region, consent, expires, days, owner in rows:\n        state = \"EXPIRED\" if days &lt; 0 else f\"{days} days left\"\n        print(f\"  {aid}  {name}  [{region}]  consent={consent}  \"\n              f\"expires={expires}  {state}  owner={owner}\")\n    return 1 if any(r[5] &lt; 0 for r in rows) else 0\n\nif __name__ == \"__main__\":\n    sys.exit(main())<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\"># crontab -e  (run as the service user that owns the ops database role)\nMAILTO=ads-ops@example.com\n17 6 * * * \/usr\/bin\/python3 \/opt\/ads\/token_ledger_check.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sixty days is not arbitrary. Re-consent is a human process: you need to reach the right person at the advertiser, they need to find someone with the authority to approve, and that chain routinely takes four to six weeks. Update <code>last_refresh_ok<\/code> from your refresh job as well, so an unrelated breakage shows up in the same table.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Summary<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You have built a ledger that records each advertiser&#8217;s consent date, derives the expiry as consent plus 365 days in the database rather than in application code, and a cron job that starts mailing you two months before anything breaks. Total footprint: one table, one index, forty lines of Python, one crontab entry. It replaces a class of outage that has no error budget, because the recovery path is a phone call rather than a deployment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two things to carry away. The cut-off is 30 July 2026, not 30 June, whatever a search summary tells you, so tokens issued from that day onward begin expiring on 30 July 2027. And usage does not extend the lifetime, which is why an integration that looks perfectly healthy today can be eleven months from a hard stop. Amazon documents the behaviour under <a href=\"https:\/\/advertising.amazon.com\/API\/docs\/en-us\/guides\/account-management\/authorization\/access-tokens\">access tokens in the Amazon Advertising API guides<\/a>; treat that page as the source of truth and your ledger as the alarm clock Amazon does not provide.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Amazon Ads refresh tokens issued since 30 July 2026 die 365 days after advertiser consent, using them changes nothing, and no reminder is sent.<\/p>\n","protected":false},"author":1,"featured_media":9376,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[91106,91386,91294,91392],"class_list":["post-9361","post","type-post","status-publish","format-standard","hentry","category-digital-marketing","tag-automation","tag-marketing-cyfrowy-pl","tag-monitoring","tag-rest-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder - Lukas Wojcik - Blog<\/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:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Amazon Ads refresh tokens issued since 30 July 2026 die 365 days after advertiser consent, using them changes nothing, and no reminder is sent.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-11T05:15:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder\",\"datePublished\":\"2026-08-11T05:15:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/\"},\"wordCount\":896,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg\",\"keywords\":[\"Automation\",\"Digital Marketing\",\"Monitoring\",\"REST API\"],\"articleSection\":[\"Digital Marketing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/\",\"name\":\"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg\",\"datePublished\":\"2026-08-11T05:15:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/amazon-ads-refresh-token-expiry-ledger-en\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder - Lukas Wojcik - Blog","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:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/","og_locale":"en_US","og_type":"article","og_title":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder - Lukas Wojcik - Blog","og_description":"Amazon Ads refresh tokens issued since 30 July 2026 die 365 days after advertiser consent, using them changes nothing, and no reminder is sent.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-08-11T05:15:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg","type":"image\/jpeg"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder","datePublished":"2026-08-11T05:15:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/"},"wordCount":896,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg","keywords":["Automation","Digital Marketing","Monitoring","REST API"],"articleSection":["Digital Marketing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/","name":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg","datePublished":"2026-08-11T05:15:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/fi-9361-amazon-ads-refresh-tokens-365-day-expiry-since-july.jpg","width":1200,"height":630,"caption":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/amazon-ads-refresh-token-expiry-ledger-en\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Amazon Ads Refresh Tokens: 365-Day Expiry Since July 30, No Reminder"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=9361"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9361\/revisions"}],"predecessor-version":[{"id":9739,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/9361\/revisions\/9739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/9376"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=9361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=9361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=9361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}