Have a look here Understanding transactions better
Full nodes listen and broadcast transactions. As a full node you receive and can display the pending transactions in your transaction pool. That's what etherscan does. Maybe you can't access it through their API, their choice.
So you can get some of the pending transactions as a node, but you don't get to choose, and most likely some transactions will have been included in a block before they reach you in a pending state.
If we are talking about EtherDelta in particular you could retrieve the data from their even logs.
Here's EtherDelta contract: https://etherscan.io/address/0x8d12a197cb00d4747a1fe03395095ce2a5cc6819#code
As you can see, each transaction being done with the contract has an event log. You can see it by clicking on any completed transaction hash.
EtherDelta fires these events depending on the transaction
event Order(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user);
event Cancel(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s);
event Trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, address get, address give);
event Deposit(address token, address user, uint amount, uint balance);
event Withdraw(address token, address user, uint amount, uint balance);
You could get all the transactions associated to this contract using web3 and then filter them, this could prove tricky as these events are not indexed.
Another thing you could do is get the event logs of the tokens themselves. [If they are ERC20 tokens, they have the Transfer() event][1]
which would allow you to know how tokens are moving between accounts for a particular token contract.
event Transfer(address indexed _from, address indexed _to, uint256 _value)
In this case, the parameters are indexed so, for example, you could filter _from: your address _to: EtherDelta contract to get all transactions sent by you to them.
Best Answer
There are no web services that I know of that provide this data.
You could use web3.js to get all the events emitted by the contract. These could be filtered based on the sender or receivers address.
ERC20 sepcifies the
Transfer
event:The specific API method docs can be found here.