{"id":13622466,"url":"https://github.com/RonLek/wordcloud-api","last_synced_at":"2025-04-15T09:32:26.877Z","repository":{"id":131925196,"uuid":"384468202","full_name":"RonLek/wordcloud-api","owner":"RonLek","description":"Send text. Receive wordclouds!","archived":false,"fork":false,"pushed_at":"2022-01-03T15:38:35.000Z","size":25,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-01T21:53:17.824Z","etag":null,"topics":["api","flask","javascript","python","wordcloud"],"latest_commit_sha":null,"homepage":"https://rohanlekhwani.pythonanywhere.com/wordcloud","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RonLek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-09T14:50:38.000Z","updated_at":"2024-01-02T21:39:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"f4070bea-e4a7-417d-ada7-502aadcc4cd6","html_url":"https://github.com/RonLek/wordcloud-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RonLek%2Fwordcloud-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RonLek%2Fwordcloud-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RonLek%2Fwordcloud-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RonLek%2Fwordcloud-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RonLek","download_url":"https://codeload.github.com/RonLek/wordcloud-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223668162,"owners_count":17182882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","flask","javascript","python","wordcloud"],"created_at":"2024-08-01T21:01:19.660Z","updated_at":"2024-11-08T10:30:19.095Z","avatar_url":"https://github.com/RonLek.png","language":"Python","readme":"# Wordcloud API\nA simple wordcloud API based on [amueller/word_cloud](https://github.com/amueller/word_cloud).\n\n\n![US Constitution Wordcloud](examples/US-constitution.jpeg)\n\n## ☁️ What\n\nWordcloud API is a simple, customizable wordcloud generation API that doesn't require Internet access, can be self-hosted and returns a word cloud.\n\n## 💡 Why\n\n- Looking for a simple API that could return customized wordcloud images didn't turn out well.\n- [Quickchart](https://github.com/typpo/quickchart) doesn't have wordcloud within their open-sourced codebase. My use case involved hosting an API within a self-contained, isolated (no Internet access) environment.\n- Community version of Quickchart APIs is restricted by a [rate-limit](https://quickchart.io/pricing/) of 1 wordcloud per sec per IP address. Also, I didn't want to pay for unlimited hits. Solution: Build my own API ;).\n\n## 🚀 Usage\n\n### Docker\nThe docker image [rohanlekhwani/wordcloud-api](https://hub.docker.com/r/rohanlekhwani/wordcloud-api) has all the dependencies installed and can be pulled and set to run instantly.\n\n```\ndocker pull rohanlekhwani/wordcloud-api\n```\nIn case, you need to change parameters to the wordcloud class and build a new image on-premise, a Dockerfile has been provided.\n\nRun\n\n```\ndocker run -p 8000:8000 rohanlekhwani/wordcloud-api\n```\n\nThe wordcloud can be generated by making a GET request to the `/wordcloud` endpoint with wordlist within the `text` parameter.\n\n```\nhttp://localhost:8000/wordcloud?text=\"english hindi spanish portuguese german mandarin\"\n```\n\nThis would return the wordcloud JPEG image.\n\n![wordcloud](examples/languages.jpeg)\n\n### Public Internet\nIn case, you don't want to host it on-premise, I have a hosted version at the following URL\n\n```\nhttps://rohanlekhwani.pythonanywhere.com/wordcloud\n```\n\nThis API endpoint [theoretically](https://www.pythonanywhere.com/forums/topic/12632/) does not have any rate limits (Yay!) unlike Quickchart APIs. Feel free to use it in your projects. \n\n## 🤝 Contributing\n\nCurrently, customizations only for the word list has been provided. I've hardcoded other customizations according to my use case.\n\nA major scope of improvement is to make use of all [parameters](https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html) of the Wordcloud class within the API endpoint. For example, the current `min_font_size` is hardcoded to 2. This can be accepted as a parameter within the API endpoint.\n\n```\nhttp://localhost:8000/wordcloud?text=\"english hindi spanish portuguese german mandarin\"\u0026min_font_size=10\n```\n\nAccepting feature requests and bugs on the [issues](https://github.com/RonLek/wordcloud-api/issues) page.\n\n## 🌟 Show your support\nPlease star this repository if this project helped you!\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRonLek%2Fwordcloud-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRonLek%2Fwordcloud-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRonLek%2Fwordcloud-api/lists"}