ServiceGraph API console
endpoint:https://api.servicegraph.co·

Filter DSL

One filter string, GitHub-search-style. AND binds tighter than OR;-x or NOT x for negation; comma-lists scope to one predicate; tag@evidence requires evidence ≥ low/medium/high. Any bareword (an identifier or number not followed by an operator) becomes a free-text keyword search — mix it freely with structured filters: dental industry:marketing_agency.

The kind field is implicit on /v1/datasets/:id/search (URL is authoritative) and using it inside the filter is rejected with HTTP 400. Different datasets surface different field sets — see /v1/datasets/:id or the endpoints page for per-dataset filter lists.

Live tester

The tester calls bearer-gated endpoints. Paste a token first.
kind:
free — returns brief rows + per-row unlock state

Examples · pro_services

Grammar

filter   := orExpr
orExpr   := andExpr ("OR" andExpr)*
andExpr  := notExpr (("AND")? notExpr)*    # whitespace = implicit AND
notExpr  := ("NOT" | "-") notExpr | atom
atom     := "(" filter ")" | predicate
predicate:= IDENT op valueOrList | bareword
op       := ":" | "=" | ">=" | "<=" | ">" | "<"
valueOrList := value ("," value)*
value    := IDENT | NUMBER | tagAtEvidence
tagAtEvidence := IDENT "@" ("low"|"medium"|"high")
bareword := IDENT | NUMBER          # → keyword:<bareword>

Field catalog

Paste a token to load the field catalog.