{"openapi":"3.1.0","info":{"title":"Anagram API","version":"1.0.0","description":"Work with anagrams. The check endpoint tells you whether two strings are anagrams of each other — by default ignoring case, spaces and punctuation, so \"Dormitory\" and \"Dirty Room\" match. The signature endpoint returns the canonical sorted-letter key for a string; two strings are anagrams exactly when their signatures are equal, which makes the signature ideal for indexing and bucketing. The group endpoint takes a list of words and groups them into their anagram sets. Perfect for word games and puzzles, dictionaries and search, and de-duplicating reordered strings. No word list needed — it is pure letter analysis. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. Distinct from spelling, similarity and dictionary APIs.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/anagram-api","description":"oanor gateway"}],"tags":[{"name":"Anagram"},{"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/check":{"get":{"operationId":"get_v1_check","tags":["Anagram"],"summary":"Check if two strings are anagrams","description":"","parameters":[{"name":"a","in":"query","required":true,"description":"First string","schema":{"type":"string"},"example":"Dormitory"},{"name":"b","in":"query","required":true,"description":"Second string","schema":{"type":"string"},"example":"Dirty Room"},{"name":"ignore_case","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}},{"name":"ignore_spaces","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}},{"name":"letters_only","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"a":"Dormitory","b":"Dirty Room","options":{"ignore_case":true,"letters_only":true,"ignore_spaces":true},"identical":false,"is_anagram":true},"meta":{"timestamp":"2026-06-03T01:09:40.992Z","request_id":"2ce7ac4a-9f5c-4d91-a6ac-aa246e3692b1"},"status":"ok","message":"Check if two strings are anagrams","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/group":{"get":{"operationId":"get_v1_group","tags":["Anagram"],"summary":"Group words by anagram","description":"","parameters":[{"name":"words","in":"query","required":true,"description":"JSON array or comma list","schema":{"type":"string"},"example":"listen,silent,enlist,cat,act"},{"name":"ignore_case","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}},{"name":"ignore_spaces","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}},{"name":"letters_only","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"groups":[{"members":["listen","silent","enlist"],"signature":"eilnst"},{"members":["cat","act"],"signature":"act"}],"total_words":5,"anagram_groups":2},"meta":{"timestamp":"2026-06-03T01:09:41.088Z","request_id":"4f19f153-7341-435a-9df1-0336b4a3bf70"},"status":"ok","message":"Group words by anagram","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/signature":{"get":{"operationId":"get_v1_signature","tags":["Anagram"],"summary":"Anagram signature","description":"","parameters":[{"name":"text","in":"query","required":true,"description":"A string","schema":{"type":"string"},"example":"listen"},{"name":"ignore_case","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}},{"name":"ignore_spaces","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}},{"name":"letters_only","in":"query","required":false,"description":"true/false (default true)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"text":"listen","signature":"eilnst"},"meta":{"timestamp":"2026-06-03T01:09:41.191Z","request_id":"7a4604f2-c5ff-4d38-a880-15edd191e500"},"status":"ok","message":"Anagram signature","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":"Anagram API","notes":"Two words with the same signature are anagrams. By default comparison ignores case, whitespace and punctuation. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/check","params":{"a":"first string (required)","b":"second string (required)","ignore_case":"default true","letters_only":"default true","ignore_spaces":"default true"},"returns":"whether they are anagrams"},{"path":"/v1/signature","params":{"text":"a string (required)"},"returns":"the canonical anagram signature"},{"path":"/v1/group","params":{"words":"JSON array or comma list (required)"},"returns":"words grouped by anagram"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Check whether two strings are anagrams, compute an anagram signature (the canonical sorted-letter key used to group anagrams), and group a list of words by their anagrams. Options to ignore case, spaces and punctuation. Pure local, no key."},"meta":{"timestamp":"2026-06-03T01:09:41.277Z","request_id":"11e414c4-e791-4cf1-83ff-a8c77e7e9c4a"},"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":1125,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":165,"monthly_call_quota":9650,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2155,"monthly_call_quota":147500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5955,"monthly_call_quota":780000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/anagram-api"}