QANATIX
API Reference

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

StatusMeaning
401Missing or invalid JWT token
403Token valid but insufficient permissions
404Entity or vertical not found
422Validation error (invalid request body)

On this page