Skip to content

Find the record without knowing the code.

Live · API key required

You know the hospital's name but not its CCN, or the procedure but not its APC code. Search closes that gap so you can get to a precise query.

Try it

A real request, a real response

Every figure below is what the endpoint returns today, read from the live dataset at build time.

Request
curl
curl "https://api.vemon.io/v1/search?q=tampa&type=facility" \
  -H "Authorization: Bearer vm_live_…"

No key yet? Generate one — the free trial needs no card. Or see the data first in the Explorer.

Response
200 OK
{
  "query": "tampa",
  "summary": { "matches": 8, "returned": 8 },
  "data": [
    {
      "dataset": "healthcare-prices",
      "type": "facility",
      "id": "100071",
      "title": "Tampa General Hospital Brooksville",
      "subtitle": "Brooksville, FL",
      "matched_field": "name",
      "score": 0.9
    }
  ]
}

How it works

Design decisions, and why

Where a choice costs convenience, the reason is stated rather than hidden.

Not fuzzy, by design

Exact substrings only. A ranking a reader can predict beats a clever one nobody has tuned — and on pricing data, a typo returning confident wrong results is worse than returning nothing.

Prefix-weighted ranking

A match at the start of a name outranks one in the middle, and an exact procedure code outranks both. Every result carries its score.

Facilities and procedures together

One query covers both entity types. Filter with type when you already know which you want.

The matched field comes back

Results say whether the hit was on a name, a city, or a code, so you can build a sensible result list rather than guessing.

Use cases

What people build with it

Typeahead in your own UI

Resolve a hospital name a user typed into the CCN your queries actually need.

Data reconciliation

Match records from another system against canonical facility identifiers.

Exploration

Find which procedure groups exist before committing to an APC code.

Specification

The details

MatchingCase-insensitive substring. Minimum two characters.
ScopeFacility names, cities, procedure descriptions, APC codes.
RankingPrefix-weighted, score returned with every hit.
Typesfacility, procedure, or both.
Limit1–50, defaults to 20.
Index size2,993 facilities, 68 procedure groups

Questions

Asked most often

Why doesn't search handle typos?
Because a fuzzy matcher nobody has tuned returns confident wrong answers, and on pricing data a confident wrong answer is worse than an empty one. Substring matching is predictable: if it matched, you can see why.
Does it search across every dataset?
It searches every dataset currently loaded. Today that is one, so results are all healthcare. The response carries a dataset field, so multi-dataset results will not break existing clients.
How are results ranked?
A match at the start of a name scores highest, then a match elsewhere in the name, then a city match. Exact procedure codes rank at the top. The score comes back so you can re-rank if your use case differs.

Generate a key and query it.

The free trial key takes a minute and needs no card.