PHPackages                             nextcloud/openapi-extractor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nextcloud/openapi-extractor

ActiveLibrary[API Development](/categories/api)

nextcloud/openapi-extractor
===========================

A tool for extracting OpenAPI specifications from Nextcloud source code

v1.8.7(5mo ago)0583.6k↑21.4%[4 PRs](https://github.com/nextcloud-releases/openapi-extractor/pulls)AGPL-3.0-or-laterPHPPHP ^8.1CI passing

Since Aug 20Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/nextcloud-releases/openapi-extractor)[ Packagist](https://packagist.org/packages/nextcloud/openapi-extractor)[ RSS](/packages/nextcloud-openapi-extractor/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (6)Versions (27)Used By (0)

openapi-extractor
=================

[](#openapi-extractor)

[![REUSE status](https://camo.githubusercontent.com/76746884f1a756a11c8fcc0f3ec2d779a2a16432cdac471f4a59c9ebb998bb97/68747470733a2f2f6170692e72657573652e736f6674776172652f62616467652f6769746875622e636f6d2f6e657874636c6f75642f6f70656e6170692d657874726163746f72)](https://api.reuse.software/info/github.com/nextcloud/openapi-extractor)

Installation
------------

[](#installation)

```
composer require --dev nextcloud/openapi-extractor
```

To avoid dependency and PHP version conflicts it is best to install the package to vendor-bin using  instead.

Create a CI workflow to check the specifications are up-to-date
---------------------------------------------------------------

[](#create-a-ci-workflow-to-check-the-specifications-are-up-to-date)

The Workflow template repository has a template available:

Afterward in your repository settings set the OpenAPI workflow to be required for merging pull requests.

Usage
-----

[](#usage)

Checkout the OpenAPI tutorial at [https://docs.nextcloud.com/server/latest/developer\_manual/client\_apis/OCS/ocs-openapi.html](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-openapi.html) to see how you can use openapi-extractor.

### 🐢 Performance

[](#-performance)

Make sure that you have xdebug turned off when generating OpenAPI specs, otherwise it can take multiple minutes instead of seconds.

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance70

Regular maintenance activity

Popularity37

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 73.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Total

22

Last Release

168d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/213943?v=4)[Joas Schilling](/maintainers/nickvergessen)[@nickvergessen](https://github.com/nickvergessen)

![](https://www.gravatar.com/avatar/b2b3643201245ca1e316c2e6fc87cbdf98adb124cf6c1cce964eab16100dad81?d=identicon)[provokateurin](/maintainers/provokateurin)

---

Top Contributors

[![provokateurin](https://avatars.githubusercontent.com/u/26026535?v=4)](https://github.com/provokateurin "provokateurin (315 commits)")[![nickvergessen](https://avatars.githubusercontent.com/u/213943?v=4)](https://github.com/nickvergessen "nickvergessen (90 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (12 commits)")[![AndyScherzinger](https://avatars.githubusercontent.com/u/1315170?v=4)](https://github.com/AndyScherzinger "AndyScherzinger (3 commits)")[![skjnldsv](https://avatars.githubusercontent.com/u/14975046?v=4)](https://github.com/skjnldsv "skjnldsv (3 commits)")[![nextcloud-bot](https://avatars.githubusercontent.com/u/20296731?v=4)](https://github.com/nextcloud-bot "nextcloud-bot (2 commits)")[![vitormattos](https://avatars.githubusercontent.com/u/1079143?v=4)](https://github.com/vitormattos "vitormattos (1 commits)")

###  Code Quality

Static AnalysisRector

### Embed Badge

![Health badge](/badges/nextcloud-openapi-extractor/health.svg)

```
[![Health](https://phpackages.com/badges/nextcloud-openapi-extractor/health.svg)](https://phpackages.com/packages/nextcloud-openapi-extractor)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.1k7.8M57](/packages/dedoc-scramble)[zircote/swagger-php

Generate interactive documentation for your RESTful API using PHP attributes (preferred) or PHPDoc annotations

5.3k132.9M468](/packages/zircote-swagger-php)[knuckleswtf/scribe

Generate API documentation for humans from your Laravel codebase.✍

2.3k12.2M45](/packages/knuckleswtf-scribe)[phpdocumentor/phpdocumentor

Documentation Generator for PHP

4.4k3.1M878](/packages/phpdocumentor-phpdocumentor)[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)[jane-php/jane-php

All jane libraries into one repository

678254.7k4](/packages/jane-php-jane-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
