  As interest in quantum computing grows, there is a pressing need for
standardized API's so that algorithm designers, circuit designers, and
physicists can be provided a common reference frame for designing, executing,
and optimizing experiments. There is also a need for a language specification
that goes beyond gates and allows users to specify the time dynamics of a
quantum experiment and recover the time dynamics of the output. In this
document we provide a specification for a common interface to backends
(simulators and experiments) and a standarized data structure (Qobj --- quantum
object) for sending experiments to those backends via Qiskit. We also introduce
OpenPulse, a language for specifying pulse level control (i.e. control of the
continuous time dynamics) of a general quantum device independent of the
specific hardware implementation.
