OpenAPI Path Match
Compare request paths with OpenAPI-style templates, inspect raw parameters and identify ambiguity.
About this tool
Enter one OpenAPI-style path template per line and a raw request path. Parameters such as {pet-id}, {user.id} or {1} are supported. Parameter names must be nonempty and unique within each template in this tool. All literal characters, including *, + and dots, match literally; this is not a wildcard or regex engine.
Concrete paths precede matching parameterized paths. Different matching parameterized paths can be ambiguous: no server-independent winner is invented. Their input order is retained. Templates with identical structure but different parameter names are invalid together, as in /pets/{id} and /pets/{name}.
Each parameter consumes one or more characters inside a segment, never a slash. Mixed literal/parameter segments are supported. Adjacent or overlapping parameters can have several valid splits; the shown split chooses the leftmost parameter as long as possible and is explicitly marked when ambiguous. Matching uses bounded dynamic programming, not a backtracking regex.
Query and fragment are excluded from the request path. Trailing slash, case and percent-escape spelling remain significant. Values stay raw, so a%2Fb is one captured value, while a/b spans two segments. No percent decoding, Unicode/dot-segment normalization or absolute-URL parsing. Outer whitespace is trimmed; internal whitespace and malformed percent escapes are rejected.
This is a standalone path matcher based on OpenAPI 3.1 path rules, not a complete OpenAPI document/router validator. It does not check methods, servers/base paths, schemas, parameter declarations/serialization, or framework-specific precedence. Limits: 128 templates, 65,536 characters total, 4,096 per path, 16 parameters per template and eight million DP states.
Normal inputs update automatically. Potentially large comparisons use Match or Enter (Ctrl/Meta+Enter in the template editor) to keep typing responsive. Only exact raw templates and the request input are kept through the shared local browser adapter; matches and extracted parameters are not stored. No uploads.