diff --git a/NEWS b/NEWS
index 8558660b8ade9da9947c926c03268bfd6a1ffc55..1e1cd6c8f1ec03327846a063179c5a9b71ad8390 100644
--- a/NEWS
+++ b/NEWS
@@ -119,6 +119,8 @@ Misc
 
   - :doc:`RAPI <rapi>` documentation now has detailed parameter
     descriptions.
+  - Some opcode/job results are now also documented, see :doc:`RAPI
+    <rapi>`.
 
 - A lockset's internal lock is now also visible in lock monitor.
 - Log messages from job queue workers now contain information about the
diff --git a/doc/rapi.rst b/doc/rapi.rst
index 97a1112ff0873ed2b99e44321c91365a66fff7b9..2135795f8a23aa4457bb124780ec6c7fd015771c 100644
--- a/doc/rapi.rst
+++ b/doc/rapi.rst
@@ -1284,6 +1284,10 @@ The query arguments used up to and including Ganeti 2.4 are deprecated
 and should no longer be used. The new request format can be detected by
 the presence of the :pyeval:`rlib2._NODE_MIGRATE_REQV1` feature string.
 
+Job result:
+
+.. opcode_result:: OP_NODE_MIGRATE
+
 
 ``/2/nodes/[node_name]/role``
 +++++++++++++++++++++++++++++
diff --git a/lib/opcodes.py b/lib/opcodes.py
index bd8964d81c880d653a1cb37ef74c7e9f59aacf01..5601b84a08d2c876b22a681bc48d537f7f4daa84 100644
--- a/lib/opcodes.py
+++ b/lib/opcodes.py
@@ -991,6 +991,7 @@ class OpNodeMigrate(OpCode):
     ("iallocator", None, ht.TMaybeString,
      "Iallocator for deciding the target node for shared-storage instances"),
     ]
+  OP_RESULT = TJobIdListOnly
 
 
 class OpNodeEvacuate(OpCode):