{"openapi":"3.1.0","info":{"title":"Text Tools API","version":"1.0.0","description":"A fast, fully-local text-utilities toolkit: convert between 10 case styles (upper, lower, title, sentence, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case), generate URL-friendly slugs, compute text statistics (word, character, sentence, line and paragraph counts, average word length and reading time), and produce lorem-ipsum placeholder text by words, sentences or paragraphs. Pure server-side compute, no third-party upstream, so responses are instant and always available. Ideal for CMS, editors, developer tools, forms and content pipelines.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/text-api","description":"oanor gateway"}],"tags":[{"name":"Text"}],"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/case":{"get":{"operationId":"get_v1_case","tags":["Text"],"summary":"Convert text to a case style","description":"","parameters":[{"name":"text","in":"query","required":true,"description":"Text to convert","schema":{"type":"string"},"example":"Hello World Foo"},{"name":"to","in":"query","required":true,"description":"upper, lower, title, sentence, camel, pascal, snake, kebab, constant, dot","schema":{"type":"string"},"example":"snake"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"case":"snake","input":"Hello World Foo","result":"hello_world_foo"},"meta":{"timestamp":"2026-05-30T09:00:25.703Z","request_id":"1cd0c8ad-7e8e-4568-a9c7-5651e7742959"},"status":"ok","message":"Case converted","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/lorem":{"get":{"operationId":"get_v1_lorem","tags":["Text"],"summary":"Generate lorem ipsum","description":"","parameters":[{"name":"paragraphs","in":"query","required":false,"description":"Number of paragraphs (default 3)","schema":{"type":"string"},"example":"3"},{"name":"sentences","in":"query","required":false,"description":"Number of sentences","schema":{"type":"string"}},{"name":"words","in":"query","required":false,"description":"Number of words","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"text":"Tempor do nisi dolor velit commodo minim eu do ullamco fugiat eu commodo. Non sint ex dolor nostrud sunt reprehenderit do ex qui ea aute. Id officia incididunt non aute est ut laborum elit mollit. Eu sed deserunt veniam non culpa lorem irure. Ex veniam consectetur esse aliquip elit.\n\nVeniam magna sit adipiscing excepteur pariatur aliqua occaecat tempor eu quis enim dolore aliquip. Est aute ex reprehenderit deserunt labore id irure tempor lorem sunt nisi ullamco. Consectetur et ex enim consequat adipiscing. Qui duis enim non ex labore dolore excepteur duis.\n\nSunt incididunt tempor eiusmod dolor proident. Veniam qui occaecat exercitation anim labore quis sunt ut aliqua excepteur ad laboris occaecat. Excepteur irure irure ut laboris consequat esse exercitation proident elit velit cupidatat culpa cillum minim. Commodo aute id consectetur sunt ut consequat sit.","unit":"paragraphs","count":3},"meta":{"timestamp":"2026-05-30T09:00:25.777Z","request_id":"d708822d-d825-4930-b950-28337a9ce9bd"},"status":"ok","message":"Lorem generated","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/slug":{"get":{"operationId":"get_v1_slug","tags":["Text"],"summary":"Generate a URL slug","description":"","parameters":[{"name":"text","in":"query","required":true,"description":"Text to slugify","schema":{"type":"string"},"example":"Héllo, World!"},{"name":"separator","in":"query","required":false,"description":"Separator char (default -)","schema":{"type":"string"},"example":"-"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"slug":"hello-world","input":"Héllo, World!"},"meta":{"timestamp":"2026-05-30T09:00:25.827Z","request_id":"b00d5685-5401-49f9-9f84-3eb7cf3e5c8c"},"status":"ok","message":"Slug generated","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/stats":{"get":{"operationId":"get_v1_stats","tags":["Text"],"summary":"Compute text statistics","description":"","parameters":[{"name":"text","in":"query","required":true,"description":"Text to analyse","schema":{"type":"string"},"example":"Hello world. This is a test!"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"lines":1,"words":6,"sentences":2,"characters":28,"paragraphs":1,"avg_word_length":3.83,"characters_no_spaces":23,"reading_time_minutes":0.03},"meta":{"timestamp":"2026-05-30T09:00:25.912Z","request_id":"17db5001-34d3-4f96-9579-8ddcf3d205f7"},"status":"ok","message":"Stats computed","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":15000,"rps_limit":3,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":400,"monthly_call_quota":250000,"rps_limit":15,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1300,"monthly_call_quota":1400000,"rps_limit":50,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3600,"monthly_call_quota":7000000,"rps_limit":150,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/text-api"}