PHPackages                             inventas/laravel-appstoreconnect - 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. inventas/laravel-appstoreconnect

ActiveLibrary[API Development](/categories/api)

inventas/laravel-appstoreconnect
================================

A Laravel SDK for the App Store Connect API

v0.2.1(1mo ago)018↓50%[4 PRs](https://github.com/Inventas/laravel-appstoreconnect/pulls)MITPHPPHP ^8.2CI passing

Since Jun 12Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/Inventas/laravel-appstoreconnect)[ Packagist](https://packagist.org/packages/inventas/laravel-appstoreconnect)[ Docs](https://github.com/inventas/laravel-appstoreconnect)[ RSS](/packages/inventas-laravel-appstoreconnect/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (17)Versions (9)Used By (0)

A Laravel SDK for the App Store Connect API
===========================================

[](#a-laravel-sdk-for-the-app-store-connect-api)

[![Latest Version on Packagist](https://camo.githubusercontent.com/45859409698cfaf81451dbeb98e57f72c2df699a9a0a569d285540e3221e7e97/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696e76656e7461732f6c61726176656c2d61707073746f7265636f6e6e6563742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/inventas/laravel-appstoreconnect)[![GitHub Tests Action Status](https://camo.githubusercontent.com/3d28898b6275034e990cafcd5a5b7d1fd310d102ee6f7dae9417f80a04da2caf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f696e76656e7461732f6c61726176656c2d61707073746f7265636f6e6e6563742f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/inventas/laravel-appstoreconnect/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/2083f0f0d418b8c8d024c4434e0dbbfbbfa68f08816a8431fd6aa20d121bfbfc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f696e76656e7461732f6c61726176656c2d61707073746f7265636f6e6e6563742f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/inventas/laravel-appstoreconnect/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/60afdc2150352609e407317b550dfaa2b95502ca43e6faf21bbc17d1d0132200/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f696e76656e7461732f6c61726176656c2d61707073746f7265636f6e6e6563742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/inventas/laravel-appstoreconnect)

This package provides a Laravel-friendly Saloon SDK foundation for Apple's App Store Connect API. It includes JWT authentication helpers and an official OpenAPI specification file that can be used to generate typed Saloon requests and DTOs.

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

[](#installation)

You can install the package via composer:

```
composer require inventas/laravel-appstoreconnect
```

You can publish the config file with:

```
php artisan vendor:publish --tag="laravel-appstoreconnect-config"
```

This is the contents of the published config file:

```
return [
    'key_type' => env('APPSTORECONNECT_KEY_TYPE', 'team'),
    'key_id' => env('APPSTORECONNECT_KEY_ID'),
    'issuer_id' => env('APPSTORECONNECT_ISSUER_ID'),
    'private_key' => env('APPSTORECONNECT_PRIVATE_KEY'),
];
```

Usage
-----

[](#usage)

```
use Inventas\AppStoreConnectKit\AppStoreConnector;

$connector = new AppStoreConnector();
$response = $connector->apps()->appsGetCollection();

$apps = $response->json('data');
```

Generating the SDK
------------------

[](#generating-the-sdk)

The package ships with Apple's `openapi.oas.json` specification. Maintainers can regenerate the Saloon SDK foundation in the `Inventas\AppStoreConnectKit\Api` namespace with:

```
composer generate-sdk
```

The generation script uses the Saloon SDK generator programmatically with package-specific DTO typing for nested objects, string-backed enum component references, primitive non-enum component references, request payloads, array item types, maps, and `oneOf` unions. It validates generated DTO constructor types, DTO PHPDoc, enum backing values, and endpoint parameter native types against the OpenAPI schema before writing files, preserves falsy query values while filtering nulls, models omitted optional DTO fields with Spatie `Optional`, orders required parameters during generation, and formats the SDK output. Generated files are disposable output in `src/Api`; typing improvements should be made in the code-generation classes, not by editing generated DTOs directly.

To verify the generator output without writing files, run:

```
composer generate-sdk-dry
```

The generated SDK is expected to pass strict generated-code analysis:

```
./vendor/bin/phpstan analyse src/Api --level=max --memory-limit=2G --no-progress
```

Testing
-------

[](#testing)

```
composer test
```

Live App Store Connect authentication tests are opt-in and skipped by default unless local credentials are present. Create an untracked `.env.appstoreconnect.local` file in the project root:

```
APPSTORECONNECT_KEY_ID=ABC123DEFG
APPSTORECONNECT_KEY_TYPE=team
APPSTORECONNECT_ISSUER_ID=00000000-0000-0000-0000-000000000000
APPSTORECONNECT_PRIVATE_KEY="-----BEGIN EC PRIVATE KEY-----\n...\n-----END EC PRIVATE KEY-----"
```

Then run:

```
composer test-integration
```

For individual API keys, use `APPSTORECONNECT_KEY_TYPE=individual` and omit `APPSTORECONNECT_ISSUER_ID`; individual JWTs use `sub=user` instead of `iss`.

If Apple returns `401 NOT_AUTHORIZED`, verify that `APPSTORECONNECT_KEY_ID` matches the `AuthKey_.p8` filename, `APPSTORECONNECT_KEY_TYPE` matches the key kind, `APPSTORECONNECT_ISSUER_ID` is the App Store Connect issuer UUID and not the team ID for team keys, and the API key is active for the App Store Connect API account you are testing.

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Lennart Fischer](https://github.com/Inventas)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance92

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~0 days

Total

3

Last Release

46d ago

### Community

Maintainers

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

---

Top Contributors

[![LambdaDigamma](https://avatars.githubusercontent.com/u/19361610?v=4)](https://github.com/LambdaDigamma "LambdaDigamma (13 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (10 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (8 commits)")

---

Tags

laravelInventaslaravel-appstoreconnect

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/inventas-laravel-appstoreconnect/health.svg)

```
[![Health](https://phpackages.com/badges/inventas-laravel-appstoreconnect/health.svg)](https://phpackages.com/packages/inventas-laravel-appstoreconnect)
```

###  Alternatives

[codebar-ag/laravel-docuware

DocuWare integration with Laravel

1123.7k](/packages/codebar-ag-laravel-docuware)[codebar-ag/laravel-zammad

Zammad integration with Laravel

107.1k](/packages/codebar-ag-laravel-zammad)

PHPackages © 2026

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