---
title: "Predict an ontology path for ad-hoc free-form inputs (internal testing)"
method: POST
path: "/internal/food_classifier/classify_ontology_ad_hoc"
tags: ["internal", "food_classifier"]
---

# Predict an ontology path for ad-hoc free-form inputs (internal testing)

`POST /internal/food_classifier/classify_ontology_ad_hoc`

Phase 1 admin-only testing endpoint. Predicts the {level1..level4} ontology path for free-form inputs with no DB lookup. Do NOT invoke from production paths.

## Request body

- FoodClassifierClassifyOntologyAdHocRequest
  - `canonical_name` string, nullable
  - `description` string, nullable
  - `food_name` string, required
  - `mode` 'single_shot' | 'cascading'
  - `nutrition` object, nullable — Per-serving NFT values keyed by DBUsdaNutrition column names.
  - `ontology_serving_size_g` number, nullable

## Response `200`

successful classification

- FoodClassifierClassifyOntologyResponse
  - `current_ontology` object, nullable
  - `invalid_selections` object[]
  - `json_parse_failures` string[]
  - `llm_metadata` object[]
  - `matches_current` boolean, nullable
  - `mode` string
  - `prediction` object, required
  - `rationale_per_level` object
  - `rxfood_id` string, nullable
  - `total_cost_cents` number

## Other responses

- `400` — invalid request
- `403` — not authorized

---

[API](https://skmtc.dev/rxfoodapp/apis/inneranalytics-mnt-server.md) · [All operations](https://skmtc.dev/rxfoodapp/apis/inneranalytics-mnt-server/llms.txt) · [OpenAPI document](https://skmtc.dev/rxfoodapp/apis/inneranalytics-mnt-server/revisions/5a99db4cbce3?raw)
