Create action and transaction with GraphQL API

Aha, now I get it! public key field should be your actual public key, not your address!
for example, from this previous transaction you can see your public key is 035206890fd8736555ce667672b8183efacd9bf840b6c5ee8eb7f5703e7bddf38c,

I tried

query {
  transaction {
    unsignedTransaction(
    publicKey: "035206890fd8736555ce667672b8183efacd9bf840b6c5ee8eb7f5703e7bddf38c", 
    plainValue: "6475373a747970655f69647531353a7472616e736665725f61737365743275363a76616c7565736475363a616d6f756e746c647531333a646563696d616c506c61636573313a1275373a6d696e746572736e75363a7469636b657275373a4352595354414c656931303030303030303030303030303030303030656575393a726563697069656e7432303a1012041ff2254f43d0a938adf89c3f11867a2a5875363a73656e64657232303aa49d64c31a2594e8fb452238c9a03befd11199636565", 
    nonce: 96866)
  }
}

and It returned the right unsigned transaction!

TODO: the method how to get the public key from the address needed to be added.

I’m pretty sure you can get your public key directly from planet command, but just checking 9cscan and checking the transaction you previously signed seems a faster method.