{"openapi":"3.1.0","info":{"title":"Case Detect API","version":"1.0.0","description":"Detect which case convention a string uses, and split identifiers into their constituent words. The detect endpoint classifies any value as camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, COBOL-CASE, Train-Case, dot.case, Title Case, Sentence case, lowercase or UPPERCASE — or mixed when it does not fit — and reports the separator it found and the words it is built from. The split endpoint tokenizes any identifier into words: it breaks camelCase humps, handles acronym boundaries correctly (HTTPServer → HTTP, Server; XMLHttpRequest → XML, Http, Request), and splits on digits and on underscores, dashes, dots and spaces, returning both the original-case tokens and lower-cased words ready to feed into a converter. Ideal for linters and code-mod tools, refactoring, API and schema validators, autocomplete and search, and any pipeline that needs to understand identifier naming. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This DETECTS and tokenizes a case convention; to CONVERT a string between case styles use a text-case API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/casedetect-api","description":"oanor gateway"}],"tags":[{"name":"Case"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/detect":{"get":{"operationId":"get_v1_detect","tags":["Case"],"summary":"Detect case convention","description":"","parameters":[{"name":"value","in":"query","required":true,"description":"The string/identifier","schema":{"type":"string"},"example":"getHTTPResponse"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"case":"camel","label":"camelCase","value":"getHTTPResponse","words":["get","http","response"],"separator":"none","word_count":3,"has_lowercase":true,"has_uppercase":true},"meta":{"timestamp":"2026-06-03T09:25:06.925Z","request_id":"f11c9084-2071-437f-9c55-e3428c776779"},"status":"ok","message":"Detect case convention","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/split":{"get":{"operationId":"get_v1_split","tags":["Case"],"summary":"Split into words","description":"","parameters":[{"name":"value","in":"query","required":true,"description":"The string/identifier","schema":{"type":"string"},"example":"XMLHttpRequest"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"value":"XMLHttpRequest","words":["xml","http","request"],"tokens":["XML","Http","Request"],"word_count":3},"meta":{"timestamp":"2026-06-03T09:25:07.028Z","request_id":"279711a9-3cf7-47e1-a3bf-0284a215e09f"},"status":"ok","message":"Split into words","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Case Detect API","notes":"This DETECTS and tokenizes a case convention — to CONVERT a string between case styles use a text-case API. Letter/digit boundaries are treated as word breaks (base64 → base, 64). Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/detect","params":{"value":"the string/identifier (required)"},"returns":"the detected case, label, separator and constituent words"},{"path":"/v1/split","params":{"value":"the string/identifier (required)"},"returns":"the constituent words (original-case tokens and lower-cased words)"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Detect which case convention a string uses, and split identifiers into their constituent words. The detect endpoint classifies a value as camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, COBOL-CASE, Train-Case, dot.case, Title Case, Sentence case, lowercase or UPPERCASE (or mixed), and reports the separator used and the words it is made of. The split endpoint tokenizes any identifier into words — splitting camelCase humps, acronym boundaries (HTTPServer → HTTP, Server), digits and separators — giving you the raw words to feed into a converter. Pure local, no key."},"meta":{"timestamp":"2026-06-03T09:25:07.138Z","request_id":"111241fd-c263-42bf-b549-36415cd0b89b"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1535,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":305,"monthly_call_quota":11050,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2295,"monthly_call_quota":161500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6095,"monthly_call_quota":850000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/casedetect-api"}