Servers
auth
Login user
Authenticate user and return access token.
Validates user credentials against the database and returns an access token
for subsequent authenticated requests.
Parameters
username : str
User's username provided via form data
password : str
User's password provided via form data
Returns
TokenResponse
Response containing access_token, token_type, and username
Raises
HTTPException
401 if authentication fails due to incorrect username or password
Request Body
[object Object]Responses
Samples
curl -X POST \
'http://localhost/auth/login' \
-H "Content-Type: application/json"fetch('http://localhost/auth/login', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/auth/login';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/auth/login'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Register a new user (admin only)
Register a new user account (admin only).
Creates a new user in the database with hashed password and generates
an access token for immediate use. Only admin users can create new accounts.
Parameters
user_data : UserCreate
User registration data including username, password, and optional full_name
current_user : User
Current authenticated admin user
Returns
UserWithToken
Newly created user information including access_token
Raises
HTTPException
403 if the current user is not an admin
400 if the username is already registered
Authorizations
Request Body
Responses
Samples
curl -X POST \
'http://localhost/auth/register' \
-H "Content-Type: application/json"fetch('http://localhost/auth/register', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/auth/register';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/auth/register'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Get current user
Get current authenticated user information.
Returns the profile information of the currently authenticated user
based on the provided access token.
Parameters
current_user : User
Current authenticated user injected via dependency
Returns
User
Current user's profile information including username, full_name,
and disabled status
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/auth/me' \
-H "Content-Type: application/json"fetch('http://localhost/auth/me', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/auth/me';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/auth/me'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Logout user
Logout the current user.
This endpoint serves as a logout confirmation. Since authentication tokens
are managed client-side (via cookies), no server-side session invalidation
is required. The client is responsible for removing the stored credentials.
Returns
dict[str, str]
Success message confirming logout
Responses
Samples
curl -X POST \
'http://localhost/auth/logout' \
-H "Content-Type: application/json"fetch('http://localhost/auth/logout', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/auth/logout';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/auth/logout'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Change user password
Change the current user's password.
Validates the current password and updates to the new password.
Parameters
password_data : PasswordChange
Contains current_password and new_password
current_user : User
Current authenticated user injected via dependency
Returns
dict[str, str]
Success message confirming password change
Raises
HTTPException
400 if current password is incorrect
400 if new password is empty
Authorizations
Request Body
Responses
Samples
curl -X POST \
'http://localhost/auth/change-password' \
-H "Content-Type: application/json"fetch('http://localhost/auth/change-password', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/auth/change-password';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/auth/change-password'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Reset user password (admin only)
Reset a user's password (admin only).
Allows administrators to reset any user's password without knowing
the current password. This is useful for password recovery scenarios.
Parameters
password_data : PasswordReset
Contains username and new_password
current_user : User
Current authenticated admin user
Returns
dict[str, str]
Success message confirming password reset
Raises
HTTPException
403 if the current user is not an admin
404 if the target user is not found
400 if new password is empty
Authorizations
Request Body
Responses
Samples
curl -X POST \
'http://localhost/auth/reset-password' \
-H "Content-Type: application/json"fetch('http://localhost/auth/reset-password', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/auth/reset-password';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/auth/reset-password'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
admin
Operations
List all users
List all users in the system (admin only).
Parameters
admin : User
Current admin user (verified by dependency)
skip : int
Number of users to skip for pagination
limit : int
Maximum number of users to return
Returns
UserListResponse
List of users with total count
Authorizations
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/admin/users' \
-H "Content-Type: application/json"fetch('http://localhost/admin/users', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/users';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/users'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get user details
Get detailed information about a specific user (admin only).
Parameters
username : str
Username to look up
admin : User
Current admin user (verified by dependency)
Returns
UserDetailResponse
Detailed user information
Raises
HTTPException
404 if user not found
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/admin/users/{username}' \
-H "Content-Type: application/json"fetch('http://localhost/admin/users/{username}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/users/{username}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/users/{username}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Update user settings
Update user settings (admin only).
Parameters
username : str
Username to update
request : UpdateUserRequest
Update request with fields to modify
admin : User
Current admin user (verified by dependency)
Returns
UserDetailResponse
Updated user information
Raises
HTTPException
404 if user not found
400 if trying to demote the last admin
Authorizations
Parameters
Path Parameters
Request Body
Responses
Samples
curl -X PUT \
'http://localhost/admin/users/{username}' \
-H "Content-Type: application/json"fetch('http://localhost/admin/users/{username}', {method:'PUT',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/users/{username}';
$method = 'PUT';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/users/{username}'
headers = {
'Content-Type': 'application/json'
}
response = requests.put(url, headers=headers)
print(response.json())
Delete user
Delete a user account (admin only).
Parameters
username : str
Username to delete
admin : User
Current admin user (verified by dependency)
Returns
dict[str, str]
Success message
Raises
HTTPException
404 if user not found
400 if trying to delete self or last admin
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X DELETE \
'http://localhost/admin/users/{username}' \
-H "Content-Type: application/json"fetch('http://localhost/admin/users/{username}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/users/{username}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/users/{username}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
List all projects
List all projects in the system (admin only).
Parameters
admin : User
Current admin user (verified by dependency)
skip : int
Number of projects to skip for pagination
limit : int
Maximum number of projects to return
Returns
ProjectListResponse
List of projects with total count
Authorizations
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/admin/projects' \
-H "Content-Type: application/json"fetch('http://localhost/admin/projects', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/projects';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/projects'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Delete project
Delete a project and all its memberships (admin only).
Parameters
project_id : str
Project ID to delete
admin : User
Current admin user (verified by dependency)
Returns
dict[str, str]
Success message
Raises
HTTPException
404 if project not found
400 if trying to delete own project
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X DELETE \
'http://localhost/admin/projects/{project_id}' \
-H "Content-Type: application/json"fetch('http://localhost/admin/projects/{project_id}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/projects/{project_id}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/projects/{project_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
List project members
List all members of a project (admin only).
Parameters
project_id : str
Project ID to list members for
admin : User
Current admin user (verified by dependency)
Returns
MemberListResponse
List of members with total count
Raises
HTTPException
404 if project not found
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/admin/projects/{project_id}/members' \
-H "Content-Type: application/json"fetch('http://localhost/admin/projects/{project_id}/members', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/projects/{project_id}/members';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/projects/{project_id}/members'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Add member to project
Add a member to a project as viewer (admin only).
Parameters
project_id : str
Project ID to add member to
request : AddMemberRequest
Member details (username)
admin : User
Current admin user (verified by dependency)
Returns
MemberItem
Created member info
Raises
HTTPException
404 if project or user not found
400 if user is already a member
Authorizations
Parameters
Path Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/admin/projects/{project_id}/members' \
-H "Content-Type: application/json"fetch('http://localhost/admin/projects/{project_id}/members', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/projects/{project_id}/members';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/projects/{project_id}/members'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Remove member from project
Remove a member from a project (admin only).
Parameters
project_id : str
Project ID to remove member from
username : str
Username to remove
admin : User
Current admin user (verified by dependency)
Returns
dict[str, str]
Success message
Raises
HTTPException
404 if project or member not found
400 if trying to remove the owner
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X DELETE \
'http://localhost/admin/projects/{project_id}/members/{username}' \
-H "Content-Type: application/json"fetch('http://localhost/admin/projects/{project_id}/members/{username}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/projects/{project_id}/members/{username}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/projects/{project_id}/members/{username}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
Create project for user
Create a default project for a user who doesn't have one (admin only).
Parameters
username : str
Username to create project for
admin : User
Current admin user (verified by dependency)
Returns
UserDetailResponse
Updated user information with new project
Raises
HTTPException
404 if user not found
400 if user already has a project
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X POST \
'http://localhost/admin/users/{username}/project' \
-H "Content-Type: application/json"fetch('http://localhost/admin/users/{username}/project', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/admin/users/{username}/project';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/admin/users/{username}/project'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
projects
Operations
List user's projects
List all projects the user has access to.
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/projects' \
-H "Content-Type: application/json"fetch('http://localhost/projects', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Create a new project
Create a new project with the current user as owner.
Authorizations
Request Body
Responses
Samples
curl -X POST \
'http://localhost/projects' \
-H "Content-Type: application/json"fetch('http://localhost/projects', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Get project details
Get details of a specific project.
Authorizations
Parameters
Path Parameters
Project identifier
Responses
Samples
curl -X GET \
'http://localhost/projects/{project_id}' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Delete project
Delete a project. Owner only.
Warning: This will delete the project but NOT the associated data.
Data cleanup should be handled separately.
Authorizations
Parameters
Path Parameters
Project identifier
Responses
Samples
curl -X DELETE \
'http://localhost/projects/{project_id}' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
Update project
Update project settings. Owner only.
Authorizations
Parameters
Path Parameters
Project identifier
Request Body
Responses
Samples
curl -X PATCH \
'http://localhost/projects/{project_id}' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}', {method:'PATCH',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}';
$method = 'PATCH';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.patch(url, headers=headers)
print(response.json())
List project members
List all members of a project.
Authorizations
Parameters
Path Parameters
Project identifier
Responses
Samples
curl -X GET \
'http://localhost/projects/{project_id}/members' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}/members', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}/members';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}/members'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Invite a member
Invite a user to the project. Admin only.
Authorizations
Parameters
Path Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/projects/{project_id}/members' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}/members', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}/members';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}/members'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Remove member
Remove a member from the project. Admin only.
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X DELETE \
'http://localhost/projects/{project_id}/members/{username}' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}/members/{username}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}/members/{username}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}/members/{username}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
Update member role
Update a member's role. Admin only.
Authorizations
Parameters
Path Parameters
Request Body
Responses
Samples
curl -X PATCH \
'http://localhost/projects/{project_id}/members/{username}' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}/members/{username}', {method:'PATCH',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}/members/{username}';
$method = 'PATCH';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}/members/{username}'
headers = {
'Content-Type': 'application/json'
}
response = requests.patch(url, headers=headers)
print(response.json())
Transfer project ownership
Transfer project ownership to another user. Admin only.
Authorizations
Parameters
Path Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/projects/{project_id}/transfer' \
-H "Content-Type: application/json"fetch('http://localhost/projects/{project_id}/transfer', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/projects/{project_id}/transfer';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/projects/{project_id}/transfer'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
execution
Get a calibration figure by its path
Fetch a calibration figure by its file path.
Retrieves a PNG image file from the server's filesystem and returns it
as a streaming response.
Parameters
path : str
Absolute file path to the calibration figure image
Returns
FileResponse
PNG image data as a file response with media type "image/png"
Raises
HTTPException
404 if the file does not exist at the specified path
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/executions/figure' \
-H "Content-Type: application/json"fetch('http://localhost/executions/figure', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/executions/figure';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/executions/figure'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get the execution lock status
Fetch the current status of the execution lock.
The execution lock prevents concurrent calibration workflows from running
simultaneously. This endpoint checks whether a lock is currently held.
Parameters
ctx : ProjectContext
Project context with user and project information
execution_service : ExecutionService
Service for execution operations
Returns
ExecutionLockStatusResponse
Response containing lock status (True if locked, False if available)
Authorizations
Parameters
Header Parameters
Responses
Samples
curl -X GET \
'http://localhost/executions/lock-status' \
-H "Content-Type: application/json"fetch('http://localhost/executions/lock-status', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/executions/lock-status';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/executions/lock-status'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List executions
List executions for a given chip with pagination.
Parameters
ctx : ProjectContext
Project context with user and project information
execution_service : ExecutionService
Service for execution operations
chip_id : str
ID of the chip to fetch executions for
skip : int
Number of items to skip (default: 0)
limit : int
Number of items to return (default: 20, max: 100)
Returns
ListExecutionsResponse
Wrapped list of executions for the chip
Authorizations
Parameters
Header Parameters
Query Parameters
Chip ID to filter executions
Number of items to skip
Number of items to return
Responses
Samples
curl -X GET \
'http://localhost/executions' \
-H "Content-Type: application/json"fetch('http://localhost/executions', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/executions';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/executions'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get an execution by its ID
Return the execution detail by its ID.
Parameters
execution_id : str
ID of the execution to fetch
ctx : ProjectContext
Project context with user and project information
execution_service : ExecutionService
Service for execution operations
Returns
ExecutionResponseDetail
Detailed execution information
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/executions/{execution_id}' \
-H "Content-Type: application/json"fetch('http://localhost/executions/{execution_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/executions/{execution_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/executions/{execution_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
file
Download file
Download a raw data file from the server.
Retrieves a file from the server's filesystem and returns it as a downloadable
response.
Parameters
path : str
Absolute file path to the file to download
Returns
FileResponse
The file as a downloadable response
Raises
HTTPException
404 if the file does not exist at the specified path
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/files/raw-data' \
-H "Content-Type: application/json"fetch('http://localhost/files/raw-data', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/raw-data';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/raw-data'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Download file or directory as zip
Download a file or directory as a ZIP archive.
Creates a ZIP archive of the specified file or directory and returns it
as a downloadable response. The archive is created in a temporary directory
and cleaned up after the response is sent.
Parameters
path : str
Absolute path to the file or directory to archive
Returns
FileResponse
ZIP archive as a downloadable response with media type "application/zip"
Raises
HTTPException
404 if the path does not exist
500 if there is an error creating the ZIP archive
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/files/zip' \
-H "Content-Type: application/json"fetch('http://localhost/files/zip', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/zip';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/zip'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get file tree for entire config directory
Get file tree structure for entire config directory (all chips).
Returns
File tree structure
Responses
Samples
curl -X GET \
'http://localhost/files/tree' \
-H "Content-Type: application/json"fetch('http://localhost/files/tree', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/tree';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/tree'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get file content for editing
Get file content for editing.
Args:
path: Relative path from CONFIG_BASE_PATH (e.g., "64Qv2/config/chip.yaml")
Returns:
File content and metadata
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/files/content' \
-H "Content-Type: application/json"fetch('http://localhost/files/content', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/content';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/content'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Save file content
Save file content.
Args:
request: Save file request with path and content
Returns:
Success message
Authorizations
Request Body
Responses
Samples
curl -X PUT \
'http://localhost/files/content' \
-H "Content-Type: application/json"fetch('http://localhost/files/content', {method:'PUT',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/content';
$method = 'PUT';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/content'
headers = {
'Content-Type': 'application/json'
}
response = requests.put(url, headers=headers)
print(response.json())
Validate file content (YAML/JSON)
Validate YAML or JSON content.
Args:
request: Validation request with content and file_type
Returns:
Validation result
Request Body
Responses
Samples
curl -X POST \
'http://localhost/files/validate' \
-H "Content-Type: application/json"fetch('http://localhost/files/validate', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/validate';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/validate'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Get Git status of config directory
Get Git status of config directory.
Returns
Git status information
Responses
Samples
curl -X GET \
'http://localhost/files/git/status' \
-H "Content-Type: application/json"fetch('http://localhost/files/git/status', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/git/status';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/git/status'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Pull latest config from Git repository
Pull latest config from Git repository.
Returns
Pull operation result
Authorizations
Responses
Samples
curl -X POST \
'http://localhost/files/git/pull' \
-H "Content-Type: application/json"fetch('http://localhost/files/git/pull', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/git/pull';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/git/pull'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Push config changes to Git repository
Push config changes to Git repository.
Args:
request: Push request with commit message
Returns:
Push operation result
Authorizations
Request Body
Responses
Samples
curl -X POST \
'http://localhost/files/git/push' \
-H "Content-Type: application/json"fetch('http://localhost/files/git/push', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/files/git/push';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/files/git/push'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
calibration
Operations
Get the calibration note
Get the latest calibration note for the master task.
Retrieves the most recent calibration note from the database, sorted by timestamp
in descending order. The note contains metadata about calibration parameters
and configuration.
Parameters
ctx : ProjectContext
Project context with user and project information
calibration_service : CalibrationService
Service for calibration operations
Returns
CalibrationNoteResponse
The latest calibration note containing username, execution_id, task_id,
note content, and timestamp
Raises
HTTPException
404 if no calibration note is found
Authorizations
Parameters
Header Parameters
Responses
Samples
curl -X GET \
'http://localhost/calibrations/note' \
-H "Content-Type: application/json"fetch('http://localhost/calibrations/note', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/calibrations/note';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/calibrations/note'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
copilot
Operations
Get Copilot configuration
Get Copilot configuration for the metrics assistant.
Retrieves the Copilot configuration from YAML, including:
- enabled: Whether Copilot is enabled
- evaluation_metrics: Which metrics to use for multi-metric evaluation
- scoring: Thresholds for good/excellent ratings per metric
- system_prompt: The AI assistant's system prompt
- initial_message: The initial greeting message
Returns
dict[str, Any]
Copilot configuration dictionary
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/copilot/config' \
-H "Content-Type: application/json"fetch('http://localhost/copilot/config', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/copilot/config';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/copilot/config'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
settings
Operations
Get settings
Get settings from the server
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/settings' \
-H "Content-Type: application/json"fetch('http://localhost/settings', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/settings';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/settings'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
chip
Operations
List all chips
List all chips with summary information.
Returns chip metadata (id, size, topology, qubit/coupling counts).
For detailed qubit/coupling data, use the dedicated endpoints.
Authorizations
Parameters
Header Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips' \
-H "Content-Type: application/json"fetch('http://localhost/chips', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Create a new chip
Create a new chip in the current project.
Parameters
request : CreateChipRequest
Chip creation request containing chip_id and size
ctx : ProjectContext
Project context with owner permission
Returns
ChipResponse
Created chip information
Raises
HTTPException
If chip_id already exists or size is invalid
Authorizations
Parameters
Header Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/chips' \
-H "Content-Type: application/json"fetch('http://localhost/chips', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Get available dates for a chip
Fetch available dates for a chip from execution counter.
Parameters
chip_id : str
ID of the chip
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
ChipDatesResponse
List of available dates
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/dates' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/dates', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/dates';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/dates'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get multiplexer details
Get the multiplexer details.
Parameters
chip_id : str
ID of the chip
mux_id : int
ID of the multiplexer
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
MuxDetailResponse
Multiplexer details
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/muxes/{mux_id}' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/muxes/{mux_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/muxes/{mux_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/muxes/{mux_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List all multiplexers for a chip
List all multiplexers for a chip.
Parameters
chip_id : str
ID of the chip
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
ListMuxResponse
List of multiplexer details
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/muxes' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/muxes', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/muxes';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/muxes'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get chip details
Get chip details including metadata and counts.
Returns chip metadata (size, topology, qubit/coupling counts).
For detailed qubit/coupling data, use the dedicated endpoints.
Parameters
chip_id : str
ID of the chip
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
ChipResponse
Chip details
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List qubits for a chip
List qubits for a chip with pagination.
Retrieves qubit data from the separate QubitDocument collection.
Supports filtering by specific qubit IDs.
Parameters
chip_id : str
ID of the chip
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
limit : int
Maximum number of qubits to return (default 50, max 256)
offset : int
Number of qubits to skip for pagination
qids : list[str] | None
Optional list of specific qubit IDs to fetch
Returns
ListQubitsResponse
List of qubits with pagination info
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/qubits' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/qubits', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/qubits';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/qubits'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get a single qubit
Get a single qubit by ID.
This is 10-18x faster than fetching the full chip and extracting one qubit.
Parameters
chip_id : str
ID of the chip
qid : str
ID of the qubit
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
QubitResponse
Qubit data
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/qubits/{qid}' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/qubits/{qid}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/qubits/{qid}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/qubits/{qid}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List couplings for a chip
List couplings for a chip with pagination.
Retrieves coupling data from the separate CouplingDocument collection.
Parameters
chip_id : str
ID of the chip
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
limit : int
Maximum number of couplings to return (default 100, max 512)
offset : int
Number of couplings to skip for pagination
Returns
ListCouplingsResponse
List of couplings with pagination info
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/couplings' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/couplings', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/couplings';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/couplings'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get a single coupling
Get a single coupling by ID.
Parameters
chip_id : str
ID of the chip
coupling_id : str
ID of the coupling (e.g., "0-1")
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
CouplingResponse
Coupling data
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/couplings/{coupling_id}' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/couplings/{coupling_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/couplings/{coupling_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/couplings/{coupling_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get aggregated metrics summary
Get aggregated metrics summary for a chip.
Computes statistics (averages, counts) on the database side.
Returns ~0.1KB of data, ideal for dashboard overview.
Parameters
chip_id : str
ID of the chip
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
MetricsSummaryResponse
Aggregated metrics summary
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/metrics/summary' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/metrics/summary', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/metrics/summary';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/metrics/summary'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get heatmap data for a single metric
Get heatmap data for a single metric.
Returns only the values needed for heatmap visualization (~5KB).
Much more efficient than fetching full chip data (~300KB+).
Supported metrics:
- Qubit: t1, t2_echo, t2_star, qubit_frequency, anharmonicity,
average_readout_fidelity, x90_gate_fidelity, x180_gate_fidelity - Coupling: zx90_gate_fidelity, bell_state_fidelity, static_zz_interaction
Parameters
chip_id : str
ID of the chip
metric : str
Name of the metric to retrieve
ctx : ProjectContext
Project context with user and project information
chip_service : ChipService
Service for chip operations
Returns
MetricHeatmapResponse
Metric values keyed by qubit/coupling ID
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/chips/{chip_id}/metrics/heatmap/{metric}' \
-H "Content-Type: application/json"fetch('http://localhost/chips/{chip_id}/metrics/heatmap/{metric}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/chips/{chip_id}/metrics/heatmap/{metric}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/chips/{chip_id}/metrics/heatmap/{metric}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
task
List all tasks
List all tasks.
Parameters
ctx : ProjectContext
The project context with user and project information.
task_repo : MongoTaskDefinitionRepository
Repository for task definition operations.
backend : str | None
Optional backend name to filter tasks by.
Returns
ListTaskResponse
The list of tasks.
Authorizations
Parameters
Header Parameters
Query Parameters
Optional backend name to filter tasks by
Responses
Samples
curl -X GET \
'http://localhost/tasks' \
-H "Content-Type: application/json"fetch('http://localhost/tasks', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/tasks';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/tasks'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get task result by task ID
Get task result by task_id.
Parameters
task_id : str
The task ID to search for.
ctx : ProjectContext
The project context with user and project information.
Returns
TaskResultResponse
The task result information including figure paths.
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/tasks/{task_id}/result' \
-H "Content-Type: application/json"fetch('http://localhost/tasks/{task_id}/result', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/tasks/{task_id}/result';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/tasks/{task_id}/result'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
task-file
Get task file settings
Get task file settings from config/settings.yaml.
Uses ConfigLoader for unified loading with local override support.
Returns
Task file settings including default backend
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/task-files/settings' \
-H "Content-Type: application/json"fetch('http://localhost/task-files/settings', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-files/settings';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-files/settings'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List available task file backends
List all available backend directories in calibtasks.
Returns
List of backend names and paths
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/task-files/backends' \
-H "Content-Type: application/json"fetch('http://localhost/task-files/backends', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-files/backends';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-files/backends'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get file tree for a specific backend
Get file tree structure for a specific backend directory.
Args:
backend: Backend name (e.g., "qubex", "fake")
Returns:
File tree structure for the backend
Authorizations
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/task-files/tree' \
-H "Content-Type: application/json"fetch('http://localhost/task-files/tree', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-files/tree';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-files/tree'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get task file content for viewing/editing
Get task file content for viewing/editing.
Args:
path: Relative path from CALIBTASKS_BASE_PATH (e.g., "qubex/one_qubit_coarse/check_rabi.py")
Returns:
File content and metadata
Authorizations
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/task-files/content' \
-H "Content-Type: application/json"fetch('http://localhost/task-files/content', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-files/content';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-files/content'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Save task file content
Save task file content.
Args:
request: Save file request with path and content
Returns:
Success message
Authorizations
Request Body
Responses
Samples
curl -X PUT \
'http://localhost/task-files/content' \
-H "Content-Type: application/json"fetch('http://localhost/task-files/content', {method:'PUT',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-files/content';
$method = 'PUT';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-files/content'
headers = {
'Content-Type': 'application/json'
}
response = requests.put(url, headers=headers)
print(response.json())
List all tasks in a backend
List all task definitions found in a backend directory.
Parses Python files to extract task names, types, and descriptions.
Results are cached and invalidated when files are modified.
Args:
backend: Backend name (e.g., "qubex", "fake")
sort_order: Sort order for tasks ("type_then_name", "name_only", "file_path")
Returns:
List of task information
Authorizations
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/task-files/tasks' \
-H "Content-Type: application/json"fetch('http://localhost/task-files/tasks', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-files/tasks';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-files/tasks'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
task-result
Get latest qubit task results
Get the latest qubit task results for all qubits on a chip.
Retrieves the most recent task result for each qubit on the specified chip.
Results include fidelity threshold status based on x90 gate fidelity.
Parameters
chip_id : str
ID of the chip to fetch results for
task : str
Name of the task to fetch results for
ctx : ProjectContext
Project context with user and project information
Returns
LatestTaskResultResponse
Task results for all qubits, keyed by qubit ID
Raises
ValueError
If the chip is not found for the current project
Authorizations
Parameters
Header Parameters
Query Parameters
Chip ID
Task name
Responses
Samples
curl -X GET \
'http://localhost/task-results/qubits/latest' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/qubits/latest', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/qubits/latest';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/qubits/latest'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get historical qubit task results
Get historical qubit task results for a specific date.
Retrieves task results from a specific historical date using chip history
snapshots. Results are filtered to tasks executed within the specified
day in JST timezone.
Parameters
chip_id : str
ID of the chip to fetch results for
task : str
Name of the task to fetch results for
date : str
Date in YYYYMMDD format (JST timezone)
ctx : ProjectContext
Project context with user and project information
Returns
LatestTaskResultResponse
Historical task results for all qubits, keyed by qubit ID
Raises
ValueError
If the chip history is not found for the specified date
Authorizations
Parameters
Header Parameters
Query Parameters
Chip ID
Task name
Date in YYYYMMDD format
Responses
Samples
curl -X GET \
'http://localhost/task-results/qubits/history' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/qubits/history', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/qubits/history';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/qubits/history'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get qubit task history
Get complete task history for a specific qubit.
Retrieves all historical task results for a specific qubit, sorted by
end time in descending order. Useful for tracking calibration trends
over time.
Parameters
qid : str
Qubit ID to fetch history for
chip_id : str
ID of the chip containing the qubit
task : str
Name of the task to fetch history for
ctx : ProjectContext
Project context with user and project information
Returns
TaskHistoryResponse
All historical task results, keyed by task_id
Raises
ValueError
If the chip is not found for the current project
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Chip ID
Task name
Responses
Samples
curl -X GET \
'http://localhost/task-results/qubits/{qid}/history' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/qubits/{qid}/history', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/qubits/{qid}/history';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/qubits/{qid}/history'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get latest coupling task results
Get the latest coupling task results for all couplings on a chip.
Retrieves the most recent task result for each coupling (qubit pair) on
the specified chip. Results include fidelity threshold status based on
Bell state fidelity.
Parameters
chip_id : str
ID of the chip to fetch results for
task : str
Name of the task to fetch results for
ctx : ProjectContext
Project context with user and project information
Returns
LatestTaskResultResponse
Task results for all couplings, keyed by coupling ID (e.g., "0-1")
Raises
ValueError
If the chip is not found for the current project
Authorizations
Parameters
Header Parameters
Query Parameters
Chip ID
Task name
Responses
Samples
curl -X GET \
'http://localhost/task-results/couplings/latest' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/couplings/latest', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/couplings/latest';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/couplings/latest'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get historical coupling task results
Get historical coupling task results for a specific date.
Retrieves task results from a specific historical date using chip history
snapshots. Results are filtered to tasks executed within the specified
day in JST timezone.
Parameters
chip_id : str
ID of the chip to fetch results for
task : str
Name of the task to fetch results for
date : str
Date in YYYYMMDD format (JST timezone)
ctx : ProjectContext
Project context with user and project information
Returns
LatestTaskResultResponse
Historical task results for all couplings, keyed by coupling ID
Raises
ValueError
If the chip history is not found for the specified date
Authorizations
Parameters
Header Parameters
Query Parameters
Chip ID
Task name
Date in YYYYMMDD format
Responses
Samples
curl -X GET \
'http://localhost/task-results/couplings/history' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/couplings/history', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/couplings/history';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/couplings/history'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get coupling task history
Get complete task history for a specific coupling.
Retrieves all historical task results for a specific coupling (qubit pair),
sorted by end time in descending order. Useful for tracking two-qubit
calibration trends over time.
Parameters
coupling_id : str
Coupling ID to fetch history for (e.g., "0-1")
chip_id : str
ID of the chip containing the coupling
task : str
Name of the task to fetch history for
ctx : ProjectContext
Project context with user and project information
Returns
TaskHistoryResponse
All historical task results, keyed by task_id
Raises
ValueError
If the chip is not found for the current project
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Chip ID
Task name
Responses
Samples
curl -X GET \
'http://localhost/task-results/couplings/{coupling_id}/history' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/couplings/{coupling_id}/history', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/couplings/{coupling_id}/history';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/couplings/{coupling_id}/history'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get timeseries task results by tag and parameter
Get timeseries task results filtered by tag and parameter.
Retrieves time series data for calibration parameters, optionally filtered
to a specific qubit. Useful for plotting parameter trends over time.
Parameters
chip_id : str
ID of the chip to fetch results for
tag : str
Tag to filter tasks by (e.g., calibration category)
parameter : str
Name of the output parameter to retrieve
start_at : str
Start time in ISO format for the time range
end_at : str
End time in ISO format for the time range
ctx : ProjectContext
Project context with user and project information
qid : str | None
Optional qubit ID to filter results to a specific qubit
Returns
TimeSeriesData
Time series data keyed by qubit ID, each containing a list of
parameter values with timestamps
Authorizations
Parameters
Header Parameters
Query Parameters
Chip ID
Tag to filter by
Parameter name
Start time in ISO format
End time in ISO format
Optional qubit ID to filter by
Responses
Samples
curl -X GET \
'http://localhost/task-results/timeseries' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/timeseries', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/timeseries';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/timeseries'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Download multiple figures as a ZIP file
Download multiple calibration figures as a ZIP file.
Creates a ZIP archive containing all requested figure files and returns it
as a streaming response.
Parameters
paths : list[str]
List of absolute file paths to the calibration figures
filename : str
Filename for the ZIP archive (default: "figures.zip")
Returns
StreamingResponse
ZIP archive containing all requested files
Raises
HTTPException
400 if no paths are provided or if any path does not exist
Authorizations
Request Body
Responses
Samples
curl -X POST \
'http://localhost/task-results/figures/download' \
-H "Content-Type: application/json"fetch('http://localhost/task-results/figures/download', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/task-results/figures/download';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/task-results/figures/download'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
tag
List all tags
List all tags for the current project.
Retrieves all tags associated with the current project's calibration data.
Tags are used to categorize and filter task results.
Parameters
ctx : ProjectContext
Project context with user and project information
tag_repo : MongoTagRepository
Repository for tag operations
Returns
ListTagResponse
Wrapped list of tag names
Authorizations
Parameters
Header Parameters
Responses
Samples
curl -X GET \
'http://localhost/tags' \
-H "Content-Type: application/json"fetch('http://localhost/tags', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/tags';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/tags'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
device-topology
Get the device topology
Get the device topology.
Authorizations
Parameters
Header Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/device-topology' \
-H "Content-Type: application/json"fetch('http://localhost/device-topology', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/device-topology';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/device-topology'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Get the device topology plot
Get the device topology as a PNG image.
Authorizations
Parameters
Header Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/device-topology/plot' \
-H "Content-Type: application/json"fetch('http://localhost/device-topology/plot', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/device-topology/plot';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/device-topology/plot'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
backend
Operations
List all backends
Retrieve a list of all registered backends
Authorizations
Parameters
Header Parameters
Responses
Samples
curl -X GET \
'http://localhost/backends' \
-H "Content-Type: application/json"fetch('http://localhost/backends', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/backends';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/backends'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
flow
Operations
List all flows
List all Flows for the current project.
Returns metadata only (no code content for performance).
Authorizations
Parameters
Header Parameters
Responses
Samples
curl -X GET \
'http://localhost/flows' \
-H "Content-Type: application/json"fetch('http://localhost/flows', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Save a flow
Save a Flow to file system and MongoDB.
Steps:
- Validate flow name
- Validate flow code contains expected function
- Create user directory if not exists
- Write code to file: user_flows/{username}/{name}.py
- Upsert metadata to MongoDB
- Return file path and success message
Authorizations
Parameters
Header Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/flows' \
-H "Content-Type: application/json"fetch('http://localhost/flows', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
List all flow templates
List all available flow templates.
Returns metadata only (no code content for performance).
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/flows/templates' \
-H "Content-Type: application/json"fetch('http://localhost/flows/templates', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/templates';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/templates'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get a flow template
Get flow template details including code content.
Steps:
- Find template metadata
- Read Python file content
- Return combined data
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/flows/templates/{template_id}' \
-H "Content-Type: application/json"fetch('http://localhost/flows/templates/{template_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/templates/{template_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/templates/{template_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List flow helper files
List all Python files in the qdash.workflow.service module.
Returns list of filenames that users can view for reference.
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/flows/helpers' \
-H "Content-Type: application/json"fetch('http://localhost/flows/helpers', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/helpers';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/helpers'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get flow helper file content
Get the content of a flow helper file.
Args:
filename: Name of the Python file (e.g., "session.py")
Returns:
File content as string
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/flows/helpers/{filename}' \
-H "Content-Type: application/json"fetch('http://localhost/flows/helpers/{filename}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/helpers/{filename}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/helpers/{filename}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
List all flow schedules for current user
List all Flow schedules (cron and one-time) for the current project.
Args:
ctx: Project context with user and project information
limit: Maximum number of schedules to return (max 100)
offset: Number of schedules to skip
Returns:
List of all flow schedules
Authorizations
Parameters
Header Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/flows/schedules' \
-H "Content-Type: application/json"fetch('http://localhost/flows/schedules', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/schedules';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/schedules'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Delete a flow schedule
Delete a Flow schedule (cron or one-time).
Schedule ID Types:
- Cron schedules: schedule_id is the deployment_id (UUID format)
- One-time schedules: schedule_id is the flow_run_id (UUID format)
The API automatically determines the type and handles accordingly:
- Cron: Removes the schedule from the deployment (schedule=None)
- One-time: Deletes the scheduled flow run
Args:
schedule_id: Schedule ID (deployment_id for cron, flow_run_id for one-time)
ctx: Project context with user and project information
Returns:
Standardized response with schedule type information
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X DELETE \
'http://localhost/flows/schedules/{schedule_id}' \
-H "Content-Type: application/json"fetch('http://localhost/flows/schedules/{schedule_id}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/schedules/{schedule_id}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/schedules/{schedule_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
Update a flow schedule
Update a Flow schedule (cron schedules only).
Can update: active status, cron expression, parameters.
Args:
schedule_id: Schedule ID (deployment_id)
request: Update request
ctx: Project context with user and project information
Returns:
Success message
Authorizations
Parameters
Header Parameters
Path Parameters
Request Body
Responses
Samples
curl -X PATCH \
'http://localhost/flows/schedules/{schedule_id}' \
-H "Content-Type: application/json"fetch('http://localhost/flows/schedules/{schedule_id}', {method:'PATCH',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/schedules/{schedule_id}';
$method = 'PATCH';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/schedules/{schedule_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.patch(url, headers=headers)
print(response.json())
Get flow details
Get Flow details including code content.
Steps:
- Find metadata in MongoDB
- Read code from file
- Return combined data
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/flows/{name}' \
-H "Content-Type: application/json"fetch('http://localhost/flows/{name}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/{name}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/{name}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Delete a flow
Delete a Flow.
Steps:
- Delete Prefect deployment
- Delete file from user_flows/{username}/{name}.py
- Delete metadata from MongoDB
Authorizations
Parameters
Header Parameters
Path Parameters
Responses
Samples
curl -X DELETE \
'http://localhost/flows/{name}' \
-H "Content-Type: application/json"fetch('http://localhost/flows/{name}', {method:'DELETE',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/{name}';
$method = 'DELETE';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/{name}'
headers = {
'Content-Type': 'application/json'
}
response = requests.delete(url, headers=headers)
print(response.json())
Execute a flow
Execute a Flow via Prefect deployment.
Steps:
- Find flow metadata in MongoDB
- Merge request parameters with default_parameters
- Create flow run via Prefect Client
- Return execution_id and URLs
Authorizations
Parameters
Header Parameters
Path Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/flows/{name}/execute' \
-H "Content-Type: application/json"fetch('http://localhost/flows/{name}/execute', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/{name}/execute';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/{name}/execute'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
Schedule a flow execution (cron or one-time)
Schedule a Flow execution with cron or one-time schedule.
Args:
name: Flow name
request: Schedule request (must provide either cron or scheduled_time)
ctx: Project context with user and project information
Returns:
Schedule response with schedule_id and details
Authorizations
Parameters
Header Parameters
Path Parameters
Request Body
Responses
Samples
curl -X POST \
'http://localhost/flows/{name}/schedule' \
-H "Content-Type: application/json"fetch('http://localhost/flows/{name}/schedule', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/{name}/schedule';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/{name}/schedule'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
List schedules for a specific flow
List all schedules (cron and one-time) for a specific Flow.
Args:
name: Flow name
ctx: Project context with user and project information
limit: Maximum number of schedules to return (max 100)
offset: Number of schedules to skip
Returns:
List of schedules for the flow
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/flows/{name}/schedules' \
-H "Content-Type: application/json"fetch('http://localhost/flows/{name}/schedules', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/flows/{name}/schedules';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/flows/{name}/schedules'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
metrics
Get metrics configuration
Get metrics metadata configuration for visualization.
Retrieves the metrics configuration loaded from YAML, including display
metadata for all qubit and coupling metrics used in the dashboard.
Returns
dict[str, Any]
Dictionary with metrics configuration including:
- qubit_metrics: Metadata for single-qubit metrics (frequency, T1, T2, fidelities)
- coupling_metrics: Metadata for two-qubit coupling metrics (ZX90, Bell state)
- color_scale: Color scale configuration for heatmap visualization
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/metrics/config' \
-H "Content-Type: application/json"fetch('http://localhost/metrics/config', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/metrics/config';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/metrics/config'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get Chip Metrics
Get chip calibration metrics for visualization.
This endpoint returns calibration metrics for a specific chip from the database, including:
- Qubit frequency, anharmonicity, T1, T2 echo times
- Gate fidelities (single-qubit and two-qubit)
- Readout fidelities
Args:
chip_id: The chip identifier
ctx: Project context with user and project information
within_hours: Optional filter to only include data from last N hours (e.g., 24)
selection_mode: "latest" to get most recent values, "best" to get optimal values
Returns:
ChipMetricsResponse with all metrics data
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Filter to data within N hours (e.g., 24)
Selection mode: 'latest' for most recent, 'best' for optimal values
Responses
Samples
curl -X GET \
'http://localhost/metrics/chips/{chip_id}/metrics' \
-H "Content-Type: application/json"fetch('http://localhost/metrics/chips/{chip_id}/metrics', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/metrics/chips/{chip_id}/metrics';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/metrics/chips/{chip_id}/metrics'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get Qubit Metric History
Get historical metric data for a specific qubit with task_id for figure display.
This endpoint queries TaskResultHistoryDocument to retrieve calibration
history for a specific metric, including multiple executions on the same day.
Each history item includes task_id for displaying calibration figures.
Args:
chip_id: The chip identifier
qid: The qubit identifier (e.g., "0", "Q00")
ctx: Project context with user and project information
metric: Metric name to retrieve history for
limit: Maximum number of history items (None for unlimited within time range)
within_days: Optional filter to only include data from last N days
Returns:
QubitMetricHistoryResponse with historical metric data and task_ids
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Metric name (e.g., t1, qubit_frequency)
Max number of history items (None for unlimited)
Filter to last N days
Responses
Samples
curl -X GET \
'http://localhost/metrics/chips/{chip_id}/qubits/{qid}/history' \
-H "Content-Type: application/json"fetch('http://localhost/metrics/chips/{chip_id}/qubits/{qid}/history', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/metrics/chips/{chip_id}/qubits/{qid}/history';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/metrics/chips/{chip_id}/qubits/{qid}/history'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get Coupling Metric History
Get historical metric data for a specific coupling with task_id for figure display.
This endpoint queries TaskResultHistoryDocument to retrieve calibration
history for a specific coupling metric, including multiple executions on the same day.
Each history item includes task_id for displaying calibration figures.
Args:
chip_id: The chip identifier
coupling_id: The coupling identifier (e.g., "0-1", "2-3")
ctx: Project context with user and project information
metric: Metric name to retrieve history for
limit: Maximum number of history items (None for unlimited within time range)
within_days: Optional filter to only include data from last N days
Returns:
QubitMetricHistoryResponse with historical metric data and task_ids
(Note: qid field contains coupling_id for coupling metrics)
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Metric name (e.g., zx90_gate_fidelity, bell_state_fidelity)
Max number of history items (None for unlimited)
Filter to last N days
Responses
Samples
curl -X GET \
'http://localhost/metrics/chips/{chip_id}/couplings/{coupling_id}/history' \
-H "Content-Type: application/json"fetch('http://localhost/metrics/chips/{chip_id}/couplings/{coupling_id}/history', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/metrics/chips/{chip_id}/couplings/{coupling_id}/history';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/metrics/chips/{chip_id}/couplings/{coupling_id}/history'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Download metrics as PDF report
Download chip metrics as a PDF report.
Generates a comprehensive PDF report containing:
- Cover page with chip information and report metadata
- Heatmap visualizations for each metric
- Statistics for each metric (coverage, average, min, max, std dev)
The report includes all qubit metrics (8 types) and coupling metrics (3 types)
that have data available.
Args:
chip_id: Chip identifier
within_hours: Optional time filter in hours
selection_mode: "latest" for most recent values, "best" for optimal values
Authorizations
Parameters
Header Parameters
Path Parameters
Query Parameters
Filter to data within N hours
Selection mode: 'latest' or 'best'
Responses
Samples
curl -X POST \
'http://localhost/metrics/chips/{chip_id}/metrics/pdf' \
-H "Content-Type: application/json"fetch('http://localhost/metrics/chips/{chip_id}/metrics/pdf', {method:'POST',headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/metrics/chips/{chip_id}/metrics/pdf';
$method = 'POST';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/metrics/chips/{chip_id}/metrics/pdf'
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers)
print(response.json())
topology
List available topologies
List all available topology definitions.
Args:
size: Optional filter by number of qubits
Returns:
dict: List of topology summaries with id, name, and num_qubits
Authorizations
Parameters
Query Parameters
Responses
Samples
curl -X GET \
'http://localhost/topology/list' \
-H "Content-Type: application/json"fetch('http://localhost/topology/list', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/topology/list';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/topology/list'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
Get topology by ID
Get a specific topology definition.
Args:
topology_id: Topology identifier (e.g., "square-lattice-mux-64")
Returns:
dict: Complete topology definition with qubits and couplings
Authorizations
Parameters
Path Parameters
Responses
Samples
curl -X GET \
'http://localhost/topology/{topology_id}' \
-H "Content-Type: application/json"fetch('http://localhost/topology/{topology_id}', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/topology/{topology_id}';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/topology/{topology_id}'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
config
Operations
Get all configuration
Fetch all application configuration in a single request
Authorizations
Responses
Samples
curl -X GET \
'http://localhost/config/all' \
-H "Content-Type: application/json"fetch('http://localhost/config/all', {headers:{'Content-Type':'application/json'}})
.then(response => response.json())
.then(data => console.log(data));<?php
$url = 'http://localhost/config/all';
$method = 'GET';
$headers = [
'Content-Type' => 'application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import requests
url = 'http://localhost/config/all'
headers = {
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())