user323: As I understand, with the network congestion it's sometimes advisable to set a higher fee to process a transaction within a block or two. Is there some way to estimate the optimal fee through calls to bitcoind? I know there are some online services that do those estimations, but I'd rather not rely on such external factors.

user86840: I am using https://bitcoinfees.net . They hare using Bitcoin Core's "estimatesmartfee" method. You can easily pick a transaction fee based on confirmation time.

user26873: Have you tried using the estimatefee RPC call? This will calculate the amount needed per kilobyte. 
For example calling bitcoin-cli estimatefee 2 would provide a fee per kb to try to get confirmed within 2 blocks. 
https://bitcoin.org/en/developer-reference#estimatefee

user38775: The other answer is outdated. estimatefee is deprecated.
You should use estimatesmartfee

Please use estimatesmartfee for more intelligent estimates.
  Estimates the approximate fee per kilobyte needed for a transaction to begin
  confirmation within nblocks blocks. Uses virtual transaction size of transaction
  as defined in BIP 141 (witness data is discounted).
Arguments:
  1. nblocks     (numeric, required)

Example:
bitcoin-cli estimatesmartfee 6


323: <p>As I understand, with the network congestion it's sometimes advisable to set a higher fee to process a transaction within a block or two. Is there some way to estimate the optimal fee through calls to bitcoind? I know there are <a href="https://estimatefee.appspot.com/" rel="noreferrer">some online services</a> that do those estimations, but I'd rather not rely on such external factors.</p>
 86840: <p>I am using <a href="https://bitcoinfees.net" rel="nofollow noreferrer">https://bitcoinfees.net</a> . They hare using Bitcoin Core's "estimatesmartfee" method. You can easily pick a transaction fee based on confirmation time.</p>
 26873: <p>Have you tried using the <code>estimatefee</code> <a href="https://bitcoin.org/en/developer-reference#estimatefee" rel="noreferrer">RPC call</a>? This will calculate the amount needed per kilobyte. </p>

<p>For example calling <code>bitcoin-cli estimatefee 2</code> would provide a fee per kb to try to get confirmed within 2 blocks. </p>

<p><a href="https://bitcoin.org/en/developer-reference#estimatefee" rel="noreferrer">https://bitcoin.org/en/developer-reference#estimatefee</a></p>
 38775: <p>The other answer is outdated. <code>estimatefee</code> is deprecated.
You should use <code>estimatesmartfee</code></p>

<blockquote>
  <p>Please use estimatesmartfee for more intelligent estimates.
  Estimates the approximate fee per kilobyte needed for a transaction to begin
  confirmation within nblocks blocks. Uses virtual transaction size of transaction
  as defined in BIP 141 (witness data is discounted).</p>
  
  <p>Arguments:
  1. nblocks     (numeric, required)</p>
</blockquote>

<p><strong>Example:</strong></p>

<pre><code>bitcoin-cli estimatesmartfee 6
</code></pre>
