{"id":18646596,"url":"https://github.com/zuplo/rate-my-openapi","last_synced_at":"2025-05-16T05:06:12.921Z","repository":{"id":200796098,"uuid":"653466139","full_name":"zuplo/rate-my-openapi","owner":"zuplo","description":"Find API quality and security issues via your OpenAPI spec","archived":false,"fork":false,"pushed_at":"2025-05-15T14:54:09.000Z","size":4883,"stargazers_count":237,"open_issues_count":4,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-15T15:49:54.037Z","etag":null,"topics":["api","api-gateway","api-rest","linter","openapi","openapi-spec","openapi-specification","openapi3"],"latest_commit_sha":null,"homepage":"https://ratemyopenapi.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zuplo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-06-14T05:39:38.000Z","updated_at":"2025-05-15T14:55:50.000Z","dependencies_parsed_at":"2023-12-15T21:49:00.448Z","dependency_job_id":"8aedcb66-fce9-4b10-8fce-b5c989a904d6","html_url":"https://github.com/zuplo/rate-my-openapi","commit_stats":null,"previous_names":["zuplo/rate-my-openapi"],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuplo%2Frate-my-openapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuplo%2Frate-my-openapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuplo%2Frate-my-openapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zuplo%2Frate-my-openapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zuplo","download_url":"https://codeload.github.com/zuplo/rate-my-openapi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254374123,"owners_count":22060605,"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","api-gateway","api-rest","linter","openapi","openapi-spec","openapi-specification","openapi3"],"created_at":"2024-11-07T06:21:24.555Z","updated_at":"2025-05-16T05:06:07.912Z","avatar_url":"https://github.com/zuplo.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ratemyopenapi.com/\"\u003e\n    \u003cimg src=\"https://cdn.zuplo.com/static/logos/logo.svg\" height=\"50\"\u003e\n    \u003ch1 align=\"center\"\u003eRate My OpenAPI\u003c/h1\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca aria-label=\"Zuplo logo\" href=\"https://zuplo.com\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/MADE%20BY%20Zuplo-FF00BD.svg?style=for-the-badge\u0026logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAzNyAzMiIgYXJpYS1oaWRkZW49InRydWUiPgogIDxwYXRoIGZpbGw9IiNGRjAwQkQiIGQ9Ik0yNy4xNDIgMTkuOTc4SDE2LjYyTDI3LjgzIDguNzQ2YS43NTguNzU4IDAgMDAtLjUzNC0xLjI5M0g5LjQ4OFYwaDE5LjUzNGE3LjU3MyA3LjU3MyAwIDAxNC4wNjUgMS4xMjUgNy41OTEgNy41OTEgMCAwMTIuODM2IDMuMTI2IDcuNDAyIDcuNDAyIDAgMDEtMS40NjEgOC4zOThsLTcuMzIgNy4zMjh6Ii8+CiAgPHBhdGggZmlsbD0iI0ZGMDBCRCIgZD0iTTkuNDg5IDExLjA0MmgxMC41MjRsLTExLjE5IDExLjIxYS43NzIuNzcyIDAgMDAuNTQzIDEuMzE2aDE3Ljc1OXY3LjQ1Mkg3LjYxYTcuNTc0IDcuNTc0IDAgMDEtNC4wNjUtMS4xMjVBNy41OTMgNy41OTMgMCAwMS43MSAyNi43NjhhNy40MDMgNy40MDMgMCAwMTEuNDYyLTguMzk3bDcuMzE4LTcuMzI5eiIvPgo8L3N2Zz4K\u0026labelColor=000\"\u003e\u003c/a\u003e\n    \u003ca aria-label=\"NPM version\" href=\"https://www.npmjs.com/package/rmoa\"\u003e\u003cimg alt=\"NPM Badge\" src=\"https://img.shields.io/npm/v/rmoa.svg?style=for-the-badge\u0026labelColor=000000\"\u003e\u003c/a\u003e\n    \u003ca aria-label=\"License\" href=\"https://github.com/zuplo/rate-my-openapi/blob/main/LICENSE\"\u003e\u003cimg alt=\"License Badge\" src=\"https://img.shields.io/npm/l/rmoa.svg?style=for-the-badge\u0026labelColor=000000\"\u003e\u003c/a\u003e\n    \u003ca aria-label=\"Join the community on Discord\" href=\"https://discord.com/channels/848913990360629268/1235294876778627246\"\u003e\u003cimg alt=\"Discrod Badge\" src=\"https://img.shields.io/badge/Chat%20on%20discord-5865F2.svg?style=for-the-badge\u0026logo=discord\u0026labelColor=000000\u0026logoWidth=20\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \u003ca href=\"https://twitter.com/zuplo\"\u003e\n    \u003cimg alt=\"X (formerly Twitter) Follow\" src=\"https://img.shields.io/twitter/follow/zuplo\"\u003e\n  \u003c/a\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"#openapi---introduction\"\u003e\u003cstrong\u003eIntroduction\u003c/strong\u003e\u003c/a\u003e · \n    \u003ca href=\"#website\"\u003e\u003cstrong\u003eWebsite\u003c/strong\u003e\u003c/a\u003e · \n    \u003ca href=\"#cli\"\u003e\u003cstrong\u003eCLI\u003c/strong\u003e\u003c/a\u003e · \n    \u003ca href=\"#github-action\"\u003e\u003cstrong\u003eGitHub Action\u003c/strong\u003e\u003c/a\u003e · \n    \u003ca href=\"#apis\"\u003e\u003cstrong\u003eAPIs\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## OpenAPI - Introduction\n\n[OpenAPI](https://www.openapis.org/) is an industry standard to describe HTTP\nAPIs. When using OpenAPI in your project, you can leverage other tools to help\nyou generate documentation, code, tests, mock results, or even deploy your API.\nIt's what's commonly known as the OpenAPI lifecycle, which looks like this:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg style=\"width:50%\" src=\"assets/openapi-lifecycle-light.png#gh-light-mode-only\" /\u003e\n  \u003cimg style=\"width:50%\" src=\"assets/openapi-lifecycle-dark.png#gh-dark-mode-only\" /\u003e\n\u003c/div\u003e\n\n## Rate My OpenAPI\n\nAt Zuplo we believe that the better the quality of an OpenAPI document, the\nbetter the developer experience will be for the consumers of that API. This\nexperience is important for the success of an API.\n\n_Rate My OpenAPI_ is a suite of tools designed to help software developers who\nare using OpenAPI to design and implement their APIs.\n\nOur tools include a\n[website](https://ratemyopenapi.com?utm_source=github\u0026utm_medium=web), a\n[CLI](https://www.npmjs.com/package/rmoa), a\n[GitHub Action](https://github.com/marketplace/actions/rate-my-openapi-action)\nand an [API](https://api.ratemyopenapi.com/docs/routes/introduction), all aimed\nat ensuring your APIs meet high standards of quality and usability.\n\n### Categories of Evaluation\n\nOur tools evaluate your OpenAPI definition files and provide a comprehensive\nscore based on four key categories:\n\n- **Documentation:** Ensure your API is well-documented, making it easy for\n  users to understand and use.\n- **SDK Generation:** Verify that your API definition supports SDK generation,\n  facilitating integration and usage in different programming languages.\n- **Security:** Check for best practices and standards to ensure your API is\n  secure and protected against common vulnerabilities.\n- **Completeness** Ensure your API definition is complete, with all necessary\n  endpoints, parameters, and responses accurately defined.\n\n### Website\n\n[https://ratemyopenapi.com](https://ratemyopenapi.com?utm_source=github\u0026utm_medium=web)\noffers a user-friendly interface for developers to upload and analyze their\nOpenAPI definition files.\n\nKey features include:\n\n- **Linting:** Upload \u0026 lint your OpenAPI files to receive detailed feedback.\n- **Comprehensive Scoring:** Get a clear, actionable score rating your API's\n  documentation, SDK generation, security, and completeness.\n- **Detailed Reports:** Access in-depth reports that highlight areas of\n  improvement and provide recommendations.\n- **Visualization:** Easily visualize the structure and quality of your API with\n  in-line feedback.\n\n#### Getting Started\n\nTo get started visit\n[https://ratemyopenapi.com](https://ratemyopenapi.com?utm_source=github\u0026utm_medium=web),\nupload your OpenAPI definition file and review the detailed reports to identify\nareas for improvement.\n\n### CLI\n\nThe CLI tool is perfect for developers who prefer working from the command line\nor need to integrate quality checks into their development workflow.\n\nKey features include:\n\n- \u003c**Automated Checks:** Integrate the CLI into your CI/CD pipeline for\n  automated quality checks on every commit.\n- **Detailed Output:** Get detailed feedback directly in your terminal, with\n  options to further integrate these results into your development flow.\n\n#### Getting Started\n\nTo get started install the CLI and start integrating it into your development\nworkflow.\n\n```bash\nnpm install rmoa\n\nrmoa lint --filename \u003copenapi-filename\u003e --api-key \u003cAPI_KEY\u003e\n```\n\nCLI source code and documentation can be found at\n[packages/cli](/packages/cli/README.md).\n\nTo get an `API_KEY` sign up for free at\n[https://api.ratemyopenapi.com/docs](https://api.ratemyopenapi.com/docs).\n\n### GitHub Action\n\nOur GitHub Action seamlessly integrates with your repository to ensure your APIs\nare consistently of high quality.\n\nKey features include:\n\n- **Automated Linting:** Automatically lint OpenAPI definition files on every\n  pull request and push to ensure code quality.\n- **Inline Feedback:** Receive feedback directly in your pull requests with\n  comments highlighting issues and areas for improvement.\n- **Continuous Improvement:** Maintain a high standard of API quality with\n  continuous monitoring and feedback.\n\n#### Getting Started\n\nTo get started add our GitHub action to your repository and configure it to run\non Pull Requests and Pushes to ensure continuous quality monitoring.\n\n```yaml\nsteps:\n  - uses: actions/checkout@v4\n  - uses: zuplo/rmoa-action@v1\n    with:\n      filepath: \"./my-api.json\"\n      apikey: ${{ secrets.RMOA_API_KEY }}\n```\n\nGitHub Action source code and documentation can be found at\n[rmoa-action](https://github.com/zuplo/rmoa-action).\n\n#### Getting an API key\n\nTo get an `API_KEY` you can sign up for free at\n[https://api.ratemyopenapi.com/docs](https://api.ratemyopenapi.com/docs).\n\n### APIs\n\nAll our tools make use of our APIs to analyze and provide detailed results.\n\nYou can also make direct use of these APIs, which is a great option for those\ndevelopers that want to build their own tools or integrate the Rate My OpenAPI\nlinting capabilities in a way that's not covered the existing tools.\n\n#### Getting Started\n\nTo get started, go to\n[https://api.ratemyopenapi.com/docs](https://api.ratemyopenapi.com/docs) to get\nthe detailed documentation on every endpoint available for use.\n\n#### Getting an API key\n\nTo get an `API_KEY` you can sign up for free at\n[https://api.ratemyopenapi.com/docs](https://api.ratemyopenapi.com/docs).\n\n# License\n\n[MIT License](./LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzuplo%2Frate-my-openapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzuplo%2Frate-my-openapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzuplo%2Frate-my-openapi/lists"}