IBMCompositeJob.result(timeout=None, wait=5, partial=False, refresh=False)[source]#

Return the result of the job.


This method blocks until all sub-jobs finish.


Some IBM Quantum job results can only be read once. A second attempt to query the server for the same job will fail, since the job has already been “consumed”.

The first call to this method in an IBMCompositeJob instance will query the server and consume any available job results. Subsequent calls to that instance’s result() will also return the results, since they are cached. However, attempting to retrieve the results again in another instance or session might fail due to the job results having been consumed.


When partial=True, this method will attempt to retrieve partial results of failed jobs. In this case, precaution should be taken when accessing individual experiments, as doing so might cause an exception. The success attribute of the returned Result instance can be used to verify whether it contains partial results.

For example, if one of the circuits in the job failed, trying to get the counts of the unsuccessful circuit would raise an exception since there are no counts to return:

    counts = result.get_counts("failed_circuit")
except QiskitError:
    print("Circuit execution failed!")

If the job failed, you can use error_message() to get more information.

  • timeout (Optional[float]) – Number of seconds to wait for job.

  • wait (float) – Time in seconds between queries.

  • partial (bool) – If True, return partial results if possible. Partial results refer to experiments within a sub-job, not individual sub-jobs. That is, this method will still block until all sub-jobs finish even if partial is set to True.

  • refresh (bool) – If True, re-query the server for the result. Otherwise return the cached value.

Return type:



Job result.