# NeoOps: full reference for LLMs > Incident routing API. Predicts ticket fields from your own resolved tickets. > Site: https://neoops.ai API: https://api.neoops.ai ## Get started 1. Sign up with Google or email. You receive $1 of credit. 2. Settings > Field mappings. Pick a template (ServiceNow, Jira Service Management, Zendesk) or a custom mapping. Set the incident key and source columns to match your CSV. The incident key identifies a row across imports. 3. Usage > Incident cache > Import CSV. Upload UTF-8 history that includes the field you want to predict, such as assignment_group. You can add or update rows, replace the cache, or remove rows by incident key. 4. Settings > Routing settings. Choose a field, up to 6 input columns, a history limit of up to 100 examples, optional allowed values and an optional text knowledge document. 5. Playground > Route incidents, or POST /v1/routing. 1 to 5 incidents per request. Results show value, confidence, elapsed time, tokens and cost. Start with a small set of representative, correctly labeled incidents. A large cache with missing or imbalanced labels can be less useful than a smaller, clean one. ## Incident cache - Each row needs an incident key. If the key is missing on import, a SHA-256 key is generated from the summary. Removing rows requires an explicit key. - Upload limit: 10 MiB and 100,000 rows. If an import exceeds your entitled cache size, the most recent unique keys are kept. Upload oldest to newest. - Importing an existing key updates that row. Clearing the cache removes examples but keeps usage history. - Routing results are returned to you and are not added to the cache. Minimal history file (default mapping): i_incident_id,i_summary,attrs_alert-asset-name,assignment_group INC-1001,Router interface flapping,router-12,Network INC-1002,Disk nearly full,vm-04,Storage ## Routing - Each field has its own settings. The field being predicted is excluded from its own inputs. - Examples come from recent cached rows that have a usable label for that field. - Allowed values constrain the answer. Without them, choices come from cached labels. - A knowledge document (max 64 KiB) adds context, for example descriptions of each RCA agent. - Several fields can be predicted in one request. Usage and cost are combined. ## API curl -X POST https://api.neoops.ai/v1/routing \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "fields": ["assignment_group", "rca_agent"], "incidents": [ { "incident_id": "NEW-2001", "summary": "Interface Gi1/0/9 changed state to down", "asset": "core-sw-12" } ] }' Response: // shape per the API reference; values illustrative { "results": [ { "incident_id": "NEW-2001", "routes": { "assignment_group": { "value": "Network Enterprise L3", "confidence": 0.96 }, "rca_agent": { "value": "Interface Flapping Agent", "confidence": 0.99 } } } ] } Endpoints: - POST /v1/routing: predict fields for 1-5 incidents - POST /v1/cache/incidents: add or replace historical incidents - GET, PUT /v1/routing/settings: manage routing fields ## Tool definition for agents { "name": "route_incidents", "description": "Predict routing fields (for example assignment_group or rca_agent) for 1 to 5 new incidents using this account's resolved-ticket history. Returns one value and a 0-1 confidence per field per incident. Use it instead of reasoning about which team or agent should handle a ticket. If confidence is below your threshold, send the ticket to human triage.", "input_schema": { "type": "object", "required": [ "fields", "incidents" ], "properties": { "fields": { "type": "array", "items": { "type": "string" }, "description": "Configured field names to predict, e.g. [\"assignment_group\"]." }, "incidents": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "required": [ "incident_id" ], "properties": { "incident_id": { "type": "string" }, "summary": { "type": "string" }, "asset": { "type": "string" }, "location": { "type": "string" } }, "additionalProperties": { "type": "string" } } } } } } ## Data quality Each field gets a 0-100 readiness score based on usable history, missing labels, number and balance of values, completeness and variety of input columns, and conflicting examples. Scores recalculate in the background after cache or setting changes. The score describes the evidence available. It is not a measured accuracy rate. ## API keys Create keys in Settings > API keys. The secret is shown once. Send it as a bearer token. Revoking a key stops future requests and keeps its usage history. API and web usage share one account credit. ## Usage and credit The overview shows tokens, spend, remaining credit and entitlements. Usage is broken down by web UI and by API key. Each request is charged by input and output tokens at the prices in your entitlement. Credit does not reset monthly. A request can go slightly past the remaining balance, since final token usage is known only after processing. Reload from $5. ## Data handling - Zero retention on routing requests: incidents sent for routing are processed, answered and discarded. Only token counts and cost are kept, for billing. - No training: customer data is never used to train or improve models. - Uploaded history is stored per account with retention the account sets. - No third-party LLM provider receives ticket data. - Privacy policy: https://neoops.ai/privacy Terms of use: https://neoops.ai/terms