Submit Local Job
curl --request POST \
--url 'https://api.example.com/jobs?HAIQU_API_KEY=' \
--header 'Content-Type: application/json' \
--data '
{
"experiment_id": "<string>",
"status": "<string>",
"hash": "",
"circuit_hash": "",
"results": "",
"device_id": "",
"shots": "",
"name": "",
"job_type": "",
"metrics": {}
}
'import requests
url = "https://api.example.com/jobs?HAIQU_API_KEY="
payload = {
"experiment_id": "<string>",
"status": "<string>",
"hash": "",
"circuit_hash": "",
"results": "",
"device_id": "",
"shots": "",
"name": "",
"job_type": "",
"metrics": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
experiment_id: '<string>',
status: '<string>',
hash: '',
circuit_hash: '',
results: '',
device_id: '',
shots: '',
name: '',
job_type: '',
metrics: {}
})
};
fetch('https://api.example.com/jobs?HAIQU_API_KEY=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/jobs?HAIQU_API_KEY=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'experiment_id' => '<string>',
'status' => '<string>',
'hash' => '',
'circuit_hash' => '',
'results' => '',
'device_id' => '',
'shots' => '',
'name' => '',
'job_type' => '',
'metrics' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/jobs?HAIQU_API_KEY="
payload := strings.NewReader("{\n \"experiment_id\": \"<string>\",\n \"status\": \"<string>\",\n \"hash\": \"\",\n \"circuit_hash\": \"\",\n \"results\": \"\",\n \"device_id\": \"\",\n \"shots\": \"\",\n \"name\": \"\",\n \"job_type\": \"\",\n \"metrics\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/jobs?HAIQU_API_KEY=")
.header("Content-Type", "application/json")
.body("{\n \"experiment_id\": \"<string>\",\n \"status\": \"<string>\",\n \"hash\": \"\",\n \"circuit_hash\": \"\",\n \"results\": \"\",\n \"device_id\": \"\",\n \"shots\": \"\",\n \"name\": \"\",\n \"job_type\": \"\",\n \"metrics\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/jobs?HAIQU_API_KEY=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"experiment_id\": \"<string>\",\n \"status\": \"<string>\",\n \"hash\": \"\",\n \"circuit_hash\": \"\",\n \"results\": \"\",\n \"device_id\": \"\",\n \"shots\": \"\",\n \"name\": \"\",\n \"job_type\": \"\",\n \"metrics\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"user_id": 123,
"experiment_id": "<string>",
"status": "Submitted",
"job_type": "User local job",
"creation_date": "2023-11-07T05:31:56Z",
"hash": "<string>",
"backend_name": "<string>",
"name": "<string>",
"description": "<string>",
"device_id": "Haiqu OS",
"run_date": "2023-11-07T05:31:56Z",
"finish_date": "2023-11-07T05:31:56Z",
"logs": "<string>",
"quality": 123,
"info": {},
"time": 123,
"parameters": {},
"circuit_id": "",
"results": "",
"shot_local": "",
"metrics": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}API Reference
Submit Local Job
Submit user-run job (user executed on it’s own) endpoint.
Handles the storing pre-run job object or job-result object into Haiqu.
Args: user (User): User authenticated with api key.
Returns: LocalJobModel: The new job object.
POST
/
jobs
Submit Local Job
curl --request POST \
--url 'https://api.example.com/jobs?HAIQU_API_KEY=' \
--header 'Content-Type: application/json' \
--data '
{
"experiment_id": "<string>",
"status": "<string>",
"hash": "",
"circuit_hash": "",
"results": "",
"device_id": "",
"shots": "",
"name": "",
"job_type": "",
"metrics": {}
}
'import requests
url = "https://api.example.com/jobs?HAIQU_API_KEY="
payload = {
"experiment_id": "<string>",
"status": "<string>",
"hash": "",
"circuit_hash": "",
"results": "",
"device_id": "",
"shots": "",
"name": "",
"job_type": "",
"metrics": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
experiment_id: '<string>',
status: '<string>',
hash: '',
circuit_hash: '',
results: '',
device_id: '',
shots: '',
name: '',
job_type: '',
metrics: {}
})
};
fetch('https://api.example.com/jobs?HAIQU_API_KEY=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/jobs?HAIQU_API_KEY=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'experiment_id' => '<string>',
'status' => '<string>',
'hash' => '',
'circuit_hash' => '',
'results' => '',
'device_id' => '',
'shots' => '',
'name' => '',
'job_type' => '',
'metrics' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/jobs?HAIQU_API_KEY="
payload := strings.NewReader("{\n \"experiment_id\": \"<string>\",\n \"status\": \"<string>\",\n \"hash\": \"\",\n \"circuit_hash\": \"\",\n \"results\": \"\",\n \"device_id\": \"\",\n \"shots\": \"\",\n \"name\": \"\",\n \"job_type\": \"\",\n \"metrics\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/jobs?HAIQU_API_KEY=")
.header("Content-Type", "application/json")
.body("{\n \"experiment_id\": \"<string>\",\n \"status\": \"<string>\",\n \"hash\": \"\",\n \"circuit_hash\": \"\",\n \"results\": \"\",\n \"device_id\": \"\",\n \"shots\": \"\",\n \"name\": \"\",\n \"job_type\": \"\",\n \"metrics\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/jobs?HAIQU_API_KEY=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"experiment_id\": \"<string>\",\n \"status\": \"<string>\",\n \"hash\": \"\",\n \"circuit_hash\": \"\",\n \"results\": \"\",\n \"device_id\": \"\",\n \"shots\": \"\",\n \"name\": \"\",\n \"job_type\": \"\",\n \"metrics\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"user_id": 123,
"experiment_id": "<string>",
"status": "Submitted",
"job_type": "User local job",
"creation_date": "2023-11-07T05:31:56Z",
"hash": "<string>",
"backend_name": "<string>",
"name": "<string>",
"description": "<string>",
"device_id": "Haiqu OS",
"run_date": "2023-11-07T05:31:56Z",
"finish_date": "2023-11-07T05:31:56Z",
"logs": "<string>",
"quality": 123,
"info": {},
"time": 123,
"parameters": {},
"circuit_id": "",
"results": "",
"shot_local": "",
"metrics": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
APIKeyQueryAPIKeyHeader
Body
application/json
Job submit data model for user-owned, local job/results.
- User local Qiskit job/results, haiqu.log(job|results)
- Data loading job
- Execution job
Maximum string length:
200Maximum string length:
200Response
Successful Response
Local user-run Job (regular Qiskit job).
Flow:
* user run normal Qiskit job
* they use haiqu.log(<job|result>) to send it to Haiqu cloud for analysis.
Qiskit and IBM runtime has several types of jobs and types of results. We do our best to analyze them all.
Class for job status.
Available options:
Submitted, Initializing, Queued, Validating, Running, Cancelled, Done, Error Class for job types.
Available options:
User local job, Analytics, Device specific analytics, Data Loading, Hybrid, Run, State Compression, Transpilation, Variational, Pretraining, SKQD