{"openapi":"3.1.0","info":{"title":"Grammar API","version":"1.0.0","description":"Catch spelling mistakes in six languages — English, German, Spanish, French, Portuguese and Dutch — and get English style and grammar suggestions in one call. Spelling errors come with their position in the text and a ranked list of corrections; style suggestions flag repeated words, weasel words, passive voice, wordiness, clichés and more. A combined check returns spelling and style together (sorted by position), a spelling-only endpoint covers all six languages, a single-word endpoint returns corrections for one word, and a languages endpoint lists what is supported. Every endpoint takes text via the query string or the request body and returns lean JSON. Pure server-side computation (Hunspell dictionaries + write-good, no third-party upstream, no LLM cost), so responses are instant and always available. Ideal for editors and CMSs, form and comment validation, chat and email tools, and writing assistants.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/grammar-api","description":"oanor gateway"}],"tags":[{"name":"Grammar"}],"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":["Grammar"],"summary":"Spelling + English style check","description":"","parameters":[{"name":"text","in":"query","required":true,"description":"Text to check","schema":{"type":"string"},"example":"I recieve the the report"},{"name":"lang","in":"query","required":false,"description":"en|de|es|fr|pt|nl","schema":{"type":"string"},"example":"en"},{"name":"style","in":"query","required":false,"description":"Include style suggestions","schema":{"type":"string"},"example":"true"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"issues":[{"type":"spelling","word":"recieve","length":7,"offset":2,"message":"\"recieve\" may be misspelled","suggestions":["receive","relieve"]},{"type":"style","length":3,"offset":14,"message":"\"the\" is repeated","suggestions":[]}],"language":"en","issue_count":2,"style_count":1,"spelling_count":1},"meta":{"timestamp":"2026-05-30T22:48:28.481Z","request_id":"f1527690-bd9c-437a-a282-ebb999da980a"},"status":"ok","message":"Text checked","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/languages":{"get":{"operationId":"get_v1_languages","tags":["Grammar"],"summary":"Supported languages","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":6,"languages":[{"code":"en","name":"English","style_check":true},{"code":"de","name":"German","style_check":false},{"code":"es","name":"Spanish","style_check":false},{"code":"fr","name":"French","style_check":false},{"code":"pt","name":"Portuguese","style_check":false},{"code":"nl","name":"Dutch","style_check":false}]},"meta":{"timestamp":"2026-05-30T22:48:28.558Z","request_id":"dff17407-73a2-4b4d-97ad-23b9e3aee604"},"status":"ok","message":"Languages retrieved","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/spell":{"get":{"operationId":"get_v1_spell","tags":["Grammar"],"summary":"Spelling check only","description":"","parameters":[{"name":"text","in":"query","required":true,"description":"Text to check","schema":{"type":"string"},"example":"I recieve the the report"},{"name":"lang","in":"query","required":false,"description":"Language code","schema":{"type":"string"},"example":"en"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"language":"en","misspelled":[{"type":"spelling","word":"recieve","length":7,"offset":2,"message":"\"recieve\" may be misspelled","suggestions":["receive","relieve"]}],"misspelled_count":1},"meta":{"timestamp":"2026-05-30T22:48:28.633Z","request_id":"c25d3754-9391-49ed-bd34-f958315e966c"},"status":"ok","message":"Spelling checked","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/suggest":{"get":{"operationId":"get_v1_suggest","tags":["Grammar"],"summary":"Corrections for a single word","description":"","parameters":[{"name":"word","in":"query","required":true,"description":"Word","schema":{"type":"string"},"example":"recieve"},{"name":"lang","in":"query","required":false,"description":"Language code","schema":{"type":"string"},"example":"en"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"word":"recieve","correct":false,"language":"en","suggestions":["receive","relieve"]},"meta":{"timestamp":"2026-05-30T22:48:28.712Z","request_id":"2a69846a-a34f-4565-8d24-c1e1a266e27d"},"status":"ok","message":"Suggestions retrieved","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":28000,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":660,"monthly_call_quota":320000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1950,"monthly_call_quota":2400000,"rps_limit":22,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4800,"monthly_call_quota":13000000,"rps_limit":75,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/grammar-api"}