Get Infra Status
import requests
url = "https://api.hydradb.com/tenants/infra/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hydradb.com/tenants/infra/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.hydradb.com/tenants/infra/status \
--header 'Authorization: Bearer <token>'{
"org_id": "<org_id>",
"infra": {
"scheduler_status": true,
"graph_status": true,
"vectorstore_status": []
},
"tenant_id": "tenant_1234",
"message": "Deployed infrastructure status"
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}Tenants
Check Infra Status
Check whether a tenant’s infrastructure is fully provisioned.
GET
/
tenants
/
infra
/
status
Get Infra Status
import requests
url = "https://api.hydradb.com/tenants/infra/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hydradb.com/tenants/infra/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.hydradb.com/tenants/infra/status \
--header 'Authorization: Bearer <token>'{
"org_id": "<org_id>",
"infra": {
"scheduler_status": true,
"graph_status": true,
"vectorstore_status": []
},
"tenant_id": "tenant_1234",
"message": "Deployed infrastructure status"
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}{
"detail": {
"success": true,
"message": "Error occurred",
"error_code": "<string>"
}
}When to use it
- After tenant creation – poll until provisioning completes
- Diagnostics – confirm the graph and vectorstore are healthy
Endpoint
- Auth: Bearer token
- Idempotency: Read-only
- Async: No
Example
curl 'https://api.hydradb.com/tenants/infra/status?tenant_id=my_first_tenant' \
-H "Authorization: Bearer <your_api_key>"
const status = await client.tenant.getInfraStatus({
tenant_id: "my_first_tenant"
});
status = client.tenant.get_infra_status(tenant_id="my_first_tenant")
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
tenant_id | string | Yes | The tenant to inspect. |
Response
{
"tenant_id": "my_first_tenant",
"org_id": "free",
"infra": {
"scheduler_status": true,
"graph_status": true,
"vectorstore_status": [true, true] // [0] = Memories, [1] = Knowledge
},
"message": "Deployed infrastructure status"
}
| Field | Description |
|---|---|
tenant_id | The tenant that was queried. |
org_id | Organization identifier. |
infra.scheduler_status | true when the ingestion scheduler is ready. |
infra.graph_status | true when the graph database is ready. |
infra.vectorstore_status | Array of two booleans. vectorstore_status[0] is the Memories vector store; vectorstore_status[1] is the Knowledge vector store. Both must be true before ingesting. |
Receiving a
"status": "accepted" response from POST /tenants/create indicates that the creation process has successfully started — it does not mean the tenant is fully provisioned. Poll this endpoint until all readiness flags are true before ingesting.Typical provisioning time depends on plan: 1–2 minutes for Free and Ship plans, and 4–5 minutes for Enterprise plans (which provision physically-isolated infrastructure). Allow up to ~5 minutes in any polling loop you write.
Polling pattern
After creating a tenant, poll this endpoint every few seconds until all statuses aretrue. Bound the loop at ~5 minutes so it survives Enterprise provisioning without hanging forever:
import time
deadline = time.time() + 300 # 5-minute cap
while time.time() < deadline:
status = client.tenant.get_infra_status(tenant_id="my_first_tenant")
infra = status.infra
if (infra.scheduler_status
and infra.graph_status
and all(infra.vectorstore_status)):
break
time.sleep(5)
else:
raise TimeoutError("Tenant infra not ready after 5 min")
Related endpoints
- Before this: Create tenant – creation is asynchronous
- After this: Upload knowledge · Add memory
Errors
Common codes:400 INVALID_PARAMETERS, 404 TENANT_NOT_FOUND. See Error Responses for the full list.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Unique identifier for the tenant/organization
Example:
"tenant_1234"
Response
Successful Response
Response for deployed infrastructure status checks.
Organization identifier
Example:
"<org_id>"
Deployed infrastructure status
Show child attributes
Show child attributes
Tenant identifier when status is queried for a specific tenant
Example:
"tenant_1234"
Summary message
Was this page helpful?
