Portal Entities & Verticals
JWT-authenticated endpoints for managing entities and verticals from the portal.
Portal Entities & Verticals
These endpoints let you manage individual entities and verticals from the developer portal. Unlike the main Entities API (which uses API keys), these use Supabase JWT tokens from portal sign-in.
All endpoints are under /api/v1/portal/.
GET /portal/entities/{id}
Get a single entity with all fields.
curl https://api.qanatix.com/api/v1/portal/entities/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Response (200)
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Stainless Steel Bolt M8x40",
"vertical": "manufacturing",
"entity_type": "fastener",
"vertical_data": {
"part_number": "SS-M8-40-A2",
"material": "Stainless Steel A2",
"price_eur": 0.12,
"in_stock": true
},
"embedding_status": "indexed",
"generation": 1,
"source_name": "catalog-2026",
"created_at": "2026-03-07T10:00:00Z",
"updated_at": "2026-03-07T10:05:00Z"
}Returns the full entity including vertical_data, embedding_status, and timestamps.
PATCH /portal/entities/{id}
Update an entity. Only include fields you want to change.
curl -X PATCH https://api.qanatix.com/api/v1/portal/entities/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"vertical_data": {
"price_eur": 0.15,
"in_stock": false
}
}'Updates trigger re-embedding and re-indexing in Qdrant automatically.
Response (200)
Returns the updated entity.
DELETE /portal/entities/{id}
Soft-delete (archive) an entity. Removes it from search results and Qdrant.
curl -X DELETE https://api.qanatix.com/api/v1/portal/entities/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Response
204 No Content
DELETE /portal/verticals/{name}
Delete an entire vertical. Archives all entities and removes the Qdrant collection.
curl -X DELETE https://api.qanatix.com/api/v1/portal/verticals/manufacturing \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Response (200)
{
"vertical": "manufacturing",
"entities_archived": 1250
}POST /portal/verticals/{name}/reindex
Reindex all entities in a vertical. Rebuilds the Qdrant collection and re-embeds every entity.
curl -X POST https://api.qanatix.com/api/v1/portal/verticals/manufacturing/reindex \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Response (200)
{
"vertical": "manufacturing",
"entities_queued": 1250
}Error responses
| Status | Meaning |
|---|---|
401 | Missing or invalid JWT token |
403 | Token valid but insufficient permissions |
404 | Entity or vertical not found |
422 | Validation error (invalid request body) |