Run a job through the API#
Login to the API#
First thing you need to do is to authenticate in the API and obtain an access token.
Run job using a previously uploaded dataset#
The endpoint to run a job for a given use case is as follows:
curl -X POST https://api.sandbox.qcentroid.com/problem/problem-urn
-H 'Authorization: Bearer {access_token}'
-H 'Content-Type: application/json'
-d '{"data_file_identifier": "070737d79192e816db1581409256bdefa0a834fb"}'
response = requests.post(
url="https://api.sandbox.qcentroid.com/problem/maxcut",
json={"data_file_identifier": "070737d79192e816db1581409256bdefa0a834fb"},
headers={"Authorization": "Bearer " + access_token})
In the request’s body, you have to include the dataset id, which is a file already uploaded to the platform and that contains the input data for this execution.
After a successful job is launched, the API returns the Job Id to be used later to check its status and get the output.
{
"detail": "Authorized. Processing file",
"job": "W4P3Q4YTSDU1"
}
Run job using providing inline data#
If your input data for the execution is not too large (less than 4 MB), you can provide it directly in the request in JSON format.
In this example, we are providing input data for the Max Cut use case:
curl -X POST https://api.sandbox.qcentroid.com/problem/maxcut
-H 'Authorization: Bearer {access_token}'
-H 'Content-Type: application/json'
-d '{ "num_nodes": 6,
"adj_matrix": [[0, 9, 5, 2, 4, 1],
[9, 0, 3, 8, 7, 6],
[5, 3, 0, 2, 8, 4],
[2, 8, 2, 0, 9, 3],
[4, 7, 8, 9, 0, 2],
[1, 6, 4, 3, 2, 0]] }'
response = requests.post(
url="https://api.sandbox.qcentroid.com/problem/maxcut",
json={ "num_nodes": 6,
"adj_matrix": [[0, 9, 5, 2, 4, 1],
[9, 0, 3, 8, 7, 6],
[5, 3, 0, 2, 8, 4],
[2, 8, 2, 0, 9, 3],
[4, 7, 8, 9, 0, 2],
[1, 6, 4, 3, 2, 0]] },
headers={"Authorization": "Bearer " + access_token})
Tip
Visit the use case’s details page in the web dashboard to check the input data format.
After a successful job is launched, the API returns the Job Id to be used later to check its status and get the output.
{
"detail": "Authorized. Processing file",
"job": "W4P3Q4YTSDU1"
}
Check job status#
To check the status of a job, use the following API GET request, providing the Job Id obtained at job execution:
curl -X GET https://api.sandbox.qcentroid.com/job/W4P3Q4YTSDU1
-H 'Authorization: Bearer {access_token}'
response = requests.get(
url="https://api.sandbox.qcentroid.com/job/W4P3Q4YTSDU1",
headers={"Authorization": "Bearer " + access_token})
This endpoint returns a JSON object like this one, with all the job details:
{
"job": {
"W4P3Q4YTSDU1": {
"status": "PENDING",
"started_at": "08/15/2024, 10:52:45",
"end_at": "",
"executions": {
...
}
}
}
}