Direct API Access
QLAM provides REST APIs that you can access directly using any HTTP client.
Overview
Direct API access is useful when:
- Building custom integrations
- Working in non-Python environments
- Automating workflows in CI/CD pipelines
- Needing fine-grained control over requests
API Documentation
Each QLAM deployment hosts its own API documentation at:
https://<api-base-url>/docs/
For example, if your deployment's API base URL is https://api.demo.quera.com, the API documentation is available at https://api.demo.quera.com/docs/.
Deployment-Specific Documentation
API documentation is served directly from each QLAM deployment. This ensures the documentation always matches the exact API version running on that deployment. See the REST API Reference for endpoint details and examples.
Authentication
All API requests require a valid access token in the Authorization header:
Authorization: Bearer <access_token>
See the Authentication Reference for details on obtaining tokens.
Example: Submit a Task
Using curl:
curl -X POST "https://api.demo.quera.com/v2/{qpu_mode}/tasks" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"programs": [
{
"content": "<your program content>"
}
],
"subtasks": [
{
"program_index": 0,
"num_shots": 100
}
]
}'
Using Python requests:
import requests
response = requests.post(
"https://api.demo.quera.com/v2/{qpu_mode}/tasks",
headers={
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json",
},
json={
"programs": [
{"content": "<your program content>"}
],
"subtasks": [
{"program_index": 0, "num_shots": 100}
],
},
)
task_id = response.json()["id"]
Example: Check Task Status
curl -X GET "https://api.demo.quera.com/v2/{qpu_mode}/tasks/{task_id}" \
-H "Authorization: Bearer $ACCESS_TOKEN"
Example: Get Task Results
curl -X GET "https://api.demo.quera.com/v2/{qpu_mode}/tasks/{task_id}/results" \
-H "Authorization: Bearer $ACCESS_TOKEN"
Common Response Codes
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Created (task submitted successfully) |
| 400 | Bad request (invalid payload) |
| 401 | Unauthorized (invalid or expired token) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Not found |
| 429 | Rate limited |
Next Steps
- Authentication Reference - Learn about authentication options
- API Reference - More details on accessing API documentation
- Task Lifecycle - Understand task states