user1307: I know that all Bitcoin API methods are listed on the wiki: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list. However, some of the methods are very poorly documented. 
F.e. the lockunspent method is only documented as taking the parameters <unlock?> [array-of-objects]. No clue about what type of objects. And there are more examples like this.
Is there a good API reference that specifies what parameters are expected and what result they give back?
This would so much lower the bar for new developers!

user9382: I've used macros and pulled the full RPC documentation from Bitcoin Core 0.9.2.1 (rough formatting, help appreciated!)
Full code won't fit here (80000 chars>30000 limit), but here's the help commands I entered and copied the returned data from:
help addmultisigaddress
help addnode 
help backupwallet 
help createmultisig 
help createrawtransaction 
help decoderawtransaction 
help decodescript 
help dumpprivkey 
help dumpwallet 
help getaccount 
help getaccountaddress 
help getaddednodeinfo 
help getaddressesbyaccount 
help getbalance 
help getbestblockhash
help getblock 
help getblockchaininfo
help getblockcount
help getblockhash 
help getblocktemplate 
help getconnectioncount
help getdifficulty
help getgenerate
help gethashespersec
help getinfo
help getmininginfo
help getnettotals
help getnetworkhashps 
help getnetworkinfo
help getnewaddress 
help getpeerinfo
help getrawchangeaddress
help getrawmempool 
help getrawtransaction 
help getreceivedbyaccount 
help getreceivedbyaddress 
help gettransaction 
help gettxout 
help gettxoutsetinfo
help getunconfirmedbalance
help getwalletinfo
help getwork 
help help 
help importprivkey 
help importwallet 
help keypoolrefill 
help listaccounts 
help listaddressgroupings
help listlockunspent
help listreceivedbyaccount 
help listreceivedbyaddress 
help listsinceblock 
help listtransactions 
help listunspent 
help lockunspent 
help move 
help ping
help sendfrom 
help sendmany 
help sendrawtransaction 
help sendtoaddress 
help setaccount 
help setgenerate 
help settxfee 
help signmessage 
help signrawtransaction 
help stop
help submitblock 
help validateaddress 
help verifychain 
help verifymessage 
help walletlock
help walletpassphrase 
help walletpassphrasechange

And a few egs:
addmultisigaddress nrequired ["key",...] ( "account" )

Add a nrequired-to-sign multisignature address to the wallet.
Each key is a Bitcoin address or hex-encoded public key.
If 'account' is specified, assign address to that account.

Arguments:
1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.
2. "keysobject" (string, required) A json array of bitcoin addresses or hex-encoded public keys
[
"address" (string) bitcoin address or hex-encoded public key
...,
]
3. "account" (string, optional) An account to assign the addresses to.

Result:
"bitcoinaddress" (string) A bitcoin address associated with the keys.

Examples:

Add a multisig address from 2 addresses
> bitcoin-cli addmultisigaddress 2 "[\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\",\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\"]"

As json rpc call
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "addmultisigaddress", "params": [2, "[\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\",\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\"]"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/



addnode "node" "add|remove|onetry"

Attempts add or remove a node from the addnode list.
Or try a connection to a node once.

Arguments:
1. "node" (string, required) The node (see getpeerinfo for nodes)
2. "command" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once

Examples:
> bitcoin-cli addnode "192.168.0.6:8333" "onetry"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "addnode", "params": ["192.168.0.6:8333", "onetry"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/


backupwallet "destination"

Safely copies wallet.dat to destination, which can be a directory or a path with filename.

Arguments:
1. "destination" (string) The destination directory or file

Examples:
> bitcoin-cli backupwallet "backup.dat"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "backupwallet", "params": ["backup.dat"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

PS. C++/QT formatting at Pastebin file so formatting may need changing and there's still time stamps I didn't edit out.

user1307: Apparently, a full API reference just got published on the Bitcoin website: 
https://bitcoin.org/en/developer-reference#remote-procedure-calls-rpcs

user13925: Here is a complete API reference that has a pending pull request for bitcoin.org

http://bitcoindev.us.to/en/developer-reference#bitcoin-core-apis

More information:
https://bitcointalk.org/index.php?topic=511876.0

1307: <p>I know that all Bitcoin API methods are listed on the wiki: <a href="https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list" rel="noreferrer">https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list</a>. However, some of the methods are very poorly documented. </p>

<p>F.e. the <code>lockunspent</code> method is only documented as taking the parameters <code>&lt;unlock?&gt; [array-of-objects]</code>. No clue about what type of objects. And there are more examples like this.</p>

<p>Is there a <em>good</em> API <strong>reference</strong> that specifies what parameters are expected and what result they give back?</p>

<p>This would so much lower the bar for new developers!</p>
 9382: <p>I've used macros and pulled the <strong>full</strong> <a href="http://pastebin.com/B7R7MFjQ" rel="nofollow">RPC documentation</a> from Bitcoin Core 0.9.2.1 (rough formatting, help appreciated!)</p>

<p>Full code won't fit here (80000 chars>30000 limit), but here's the help commands I entered and copied the returned data from:</p>

<pre><code>help addmultisigaddress
help addnode 
help backupwallet 
help createmultisig 
help createrawtransaction 
help decoderawtransaction 
help decodescript 
help dumpprivkey 
help dumpwallet 
help getaccount 
help getaccountaddress 
help getaddednodeinfo 
help getaddressesbyaccount 
help getbalance 
help getbestblockhash
help getblock 
help getblockchaininfo
help getblockcount
help getblockhash 
help getblocktemplate 
help getconnectioncount
help getdifficulty
help getgenerate
help gethashespersec
help getinfo
help getmininginfo
help getnettotals
help getnetworkhashps 
help getnetworkinfo
help getnewaddress 
help getpeerinfo
help getrawchangeaddress
help getrawmempool 
help getrawtransaction 
help getreceivedbyaccount 
help getreceivedbyaddress 
help gettransaction 
help gettxout 
help gettxoutsetinfo
help getunconfirmedbalance
help getwalletinfo
help getwork 
help help 
help importprivkey 
help importwallet 
help keypoolrefill 
help listaccounts 
help listaddressgroupings
help listlockunspent
help listreceivedbyaccount 
help listreceivedbyaddress 
help listsinceblock 
help listtransactions 
help listunspent 
help lockunspent 
help move 
help ping
help sendfrom 
help sendmany 
help sendrawtransaction 
help sendtoaddress 
help setaccount 
help setgenerate 
help settxfee 
help signmessage 
help signrawtransaction 
help stop
help submitblock 
help validateaddress 
help verifychain 
help verifymessage 
help walletlock
help walletpassphrase 
help walletpassphrasechange
</code></pre>

<p>And a few egs:</p>

<pre><code>addmultisigaddress nrequired ["key",...] ( "account" )

Add a nrequired-to-sign multisignature address to the wallet.
Each key is a Bitcoin address or hex-encoded public key.
If 'account' is specified, assign address to that account.

Arguments:
1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.
2. "keysobject" (string, required) A json array of bitcoin addresses or hex-encoded public keys
[
"address" (string) bitcoin address or hex-encoded public key
...,
]
3. "account" (string, optional) An account to assign the addresses to.

Result:
"bitcoinaddress" (string) A bitcoin address associated with the keys.

Examples:

Add a multisig address from 2 addresses
&gt; bitcoin-cli addmultisigaddress 2 "[\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\",\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\"]"

As json rpc call
&gt; curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "addmultisigaddress", "params": [2, "[\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\",\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\"]"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/



addnode "node" "add|remove|onetry"

Attempts add or remove a node from the addnode list.
Or try a connection to a node once.

Arguments:
1. "node" (string, required) The node (see getpeerinfo for nodes)
2. "command" (string, required) 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once

Examples:
&gt; bitcoin-cli addnode "192.168.0.6:8333" "onetry"
&gt; curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "addnode", "params": ["192.168.0.6:8333", "onetry"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/


backupwallet "destination"

Safely copies wallet.dat to destination, which can be a directory or a path with filename.

Arguments:
1. "destination" (string) The destination directory or file

Examples:
&gt; bitcoin-cli backupwallet "backup.dat"
&gt; curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "backupwallet", "params": ["backup.dat"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
</code></pre>

<p><em>PS. C++/QT formatting at <a href="http://pastebin.com/B7R7MFjQ" rel="nofollow">Pastebin file</a> so formatting may need changing and there's still time stamps I didn't edit out.</em></p>
 1307: <p>Apparently, a full API reference just got published on the Bitcoin website: </p>

<p><a href="https://bitcoin.org/en/developer-reference#remote-procedure-calls-rpcs" rel="nofollow">https://bitcoin.org/en/developer-reference#remote-procedure-calls-rpcs</a></p>
 13925: <p>Here is a complete API reference that has a pending pull request for bitcoin.org</p>

<blockquote>
  <p><a href="http://bitcoindev.us.to/en/developer-reference#bitcoin-core-apis" rel="nofollow">http://bitcoindev.us.to/en/developer-reference#bitcoin-core-apis</a></p>
</blockquote>

<p><em>More information:
<a href="https://bitcointalk.org/index.php?topic=511876.0" rel="nofollow">https://bitcointalk.org/index.php?topic=511876.0</a></em></p>
