POST /extract/{db_name}/{namespace}¶
Retrieves the stored field values for one or more rows by ID. Returns all fields or a specified subset.
Request¶
Content-Type: application/json
URL Parameters:
| Parameter | Description |
|---|---|
db_name |
Name of the database |
namespace |
Namespace within the database |
Body:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
row_ids |
list of int | ✅ | — | Row IDs to retrieve |
fields |
list of string | ❌ | null |
Specific fields to return. If omitted, all fields are returned |
Behavior¶
Fetches metadata for the given row IDs directly from RocksDB. Rows with no stored metadata are silently skipped. If fields is provided, only those keys are included in each result object.
Responses¶
200 OK¶
{
"status": "success",
"count": 2,
"results": [
{
"_id": 0,
"name": "Alice",
"department": "Engineering",
"role": "Senior Engineer"
},
{
"_id": 5,
"name": "Bob",
"department": "Finance",
"role": "Analyst"
}
]
}
| Field | Description |
|---|---|
count |
Number of rows returned |
results |
Array of row objects. Each includes _id plus requested fields |
Error Responses¶
| Status | Condition |
|---|---|
404 |
Collection not found |
500 |
Unexpected internal error |
Notes¶
- Rows not found in RocksDB are silently omitted from results — check
countto verify all IDs were resolved. - This endpoint reads cached field values only. For HDC slot extraction with similarity scores, use
/unbind/{db_name}/{namespace}.
Example¶
import requests
SERVER_URL = "http://18.220.128.24:8000"
API_KEY = "yourapitoken"
def extract_fields(db_name: str, namespace: str, row_ids: list, fields: list = None) -> dict:
payload = {"row_ids": row_ids}
if fields:
payload["fields"] = fields
response = requests.post(
f"{SERVER_URL}/extract/{db_name}/{namespace}",
headers={"X-API-Key": API_KEY},
json=payload,
)
response.raise_for_status()
return response.json()
result = extract_fields(
db_name="my_db",
namespace="default",
row_ids=[0, 5, 12],
fields=["name", "department"],
)
print(result)
Expected output: