 <p>As of right now, you cannot retrieve a permanent access token. You have 2 options that come close.</p> <p>The first is to request a "refresh" token when using the standard OAuth flow. That's what you're doing by sending "duration" as "permanent" in your code. The refresh token can be used to automatically retrieve new 1 hour access tokens without user intervention; the only manual steps are on the initial retrieval of the refresh token.</p> <p>The second alternative, which applies only when writing a script for personal use, is to use the <code>password</code> grant type. The steps are described in more detail on reddit's <a href="https://github.com/reddit/reddit/wiki/OAuth2-Quick-Start-Example" rel="nofollow">"OAuth Quick Start" wiki page</a>, but I'll summarize here:</p> <ol> <li>Create an OAuth client (under <a href="https://www.reddit.com/prefs/apps" rel="nofollow">https://www.reddit.com/prefs/apps</a>) with type = "script"</li> <li>Make a request to <code>https://www.reddit.com/api/v1/access_token</code> with POST parameters <code>grant_type=password&amp;username=&lt;USERNAME&gt;&amp;password=&lt;PASSWORD&gt;</code>. Send your client ID and secret as HTTP basic authentication. <code>&lt;USERNAME&gt;</code> must be registered as a developer of the OAuth 2 client ID you send.</li> </ol>