PHPackages                             nicolaskion/eve - 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. nicolaskion/eve

ActiveLibrary[API Development](/categories/api)

nicolaskion/eve
===============

Esi Integration for EVE Online

v0.11(1mo ago)02.6kMITPHPPHP ^8.3CI passing

Since Jan 6Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/NicolasKion/Esi)[ Packagist](https://packagist.org/packages/nicolaskion/eve)[ Docs](https://github.com/nicolaskion/esi)[ GitHub Sponsors]()[ RSS](/packages/nicolaskion-eve/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (65)Versions (35)Used By (0)

ESI Integration for EVE Online
==============================

[](#esi-integration-for-eve-online)

[![Latest Version on Packagist](https://camo.githubusercontent.com/8ab2977b6d184601e063814158f6434c8244e896036714241120914bfb78c765/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e69636f6c61736b696f6e2f6576652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/nicolaskion/eve)[![GitHub Tests Action Status](https://camo.githubusercontent.com/a5c2d23dc06c0a9cefb71296d28b8b1856d35a0ee8cbf06ece46907552fbbe55/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e69636f6c61736b696f6e2f6573692f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/nicolaskion/esi/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/0f0dbe7ad075dc60cee8f27b8702012ccad81f178ab8121dc504c7ced92ed3c5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e69636f6c61736b696f6e2f6573692f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/nicolaskion/esi/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/da6e41c9f7303a9a2958205b42d69d39b162ae6ba16c09e8490d1ce1d63ff07b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e69636f6c61736b696f6e2f6576652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/nicolaskion/eve)

A Laravel package that integrates [EVE Online's ESI API](https://developers.eveonline.com/) into your application. Every ESI endpoint is wrapped in a typed request class and returns fully typed, readonly DTOs — no juggling raw JSON arrays.

Features
--------

[](#features)

- **Complete ESI coverage** — every endpoint in ESI's OpenAPI specification is implemented, pinned to a specific compatibility date per release
- **Typed DTOs** for every response — characters, corporations, alliances, assets, contracts, killmails, market data, industry, fleets, and more
- **Automatic OAuth token refresh** for authenticated endpoints via your own `Character` / `EsiToken` implementations
- **Automatic pagination** — multi-page endpoints are walked and merged into a single result set for you
- **No exceptions on HTTP errors** — every call returns a typed `EsiResult` you inspect
- **Configurable retry policy** with sensible defaults

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 12 or 13

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

[](#installation)

Install the package via composer:

```
composer require nicolaskion/eve
```

Publish the config file:

```
php artisan vendor:publish --tag="esi-config"
```

Set your ESI application credentials (only needed for authenticated endpoints — create an app at [developers.eveonline.com](https://developers.eveonline.com/)):

```
EVE_CLIENT_ID=your-client-id
EVE_CLIENT_SECRET=your-client-secret
```

The config file lets you tweak the user agent, retry policy, base URL and ESI compatibility date.

Usage
-----

[](#usage)

### Public endpoints

[](#public-endpoints)

```
use NicolasKion\Esi\Facades\Esi;

$result = Esi::getStatus();

if ($result->wasSuccessful()) {
    $result->data->players; // e.g. 24_512
}

$alliance = Esi::getAlliance(434243723)->data;
$history = Esi::getMarketHistory(region_id: 10000002, type_id: 44992)->data;
```

### Resolving names and IDs

[](#resolving-names-and-ids)

```
// IDs to names
$names = Esi::getNames([95465499, 30000142])->data;

// Names to IDs, grouped by category
$ids = Esi::getIds(['CCP Bartender', 'Jita'])->data;
$ids->characters[0]->id; // 95465499
$ids->systems[0]->id;    // 30000142
```

### Authenticated endpoints

[](#authenticated-endpoints)

Endpoints that require authentication accept a `Character`. Implement the `NicolasKion\Esi\Interfaces\Character` and `NicolasKion\Esi\Interfaces\EsiToken`interfaces on your models, and the package takes care of refreshing expired access tokens for you:

```
$assets = Esi::getAssets($character)->data;
$contacts = Esi::getCharacterContacts($character)->data;

Esi::setWaypoint($character, destination_id: 30000142);
```

### Error handling

[](#error-handling)

Every call returns an `EsiResult`. Nothing throws on HTTP errors:

```
$result = Esi::getCharacter(95465499);

if ($result->failed()) {
    $result->error->code; // e.g. 404
    $result->error->body;
}
```

Coverage &amp; compatibility
----------------------------

[](#coverage--compatibility)

This package implements **every endpoint** in ESI's OpenAPI specification, so there is no per-endpoint table to keep in sync — if it exists in ESI, there is a method for it. Method names follow the ESI operation they call (`getCharacter`, `getCorporationWalletJournal`, `getMarketOrders`, `search`, `setWaypoint`, …), and every one returns an `EsiResult`.

Each release is pinned to a specific ESI **compatibility date**, sent as the `X-Compatibility-Date` header, so responses stay stable as ESI evolves. The pinned date is configurable.

Testing
-------

[](#testing)

```
composer test
```

Run the suite with coverage:

```
composer test-coverage
```

Changelog
---------

[](#changelog)

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

License
-------

[](#license)

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

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance94

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.7% 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

Recently: every ~1 days

Total

26

Last Release

32d ago

PHP version history (2 changes)v0.1PHP ^8.2

v0.5PHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/172045106?v=4)[Nicolas Kion](/maintainers/NicolasKion)[@NicolasKion](https://github.com/NicolasKion)

---

Top Contributors

[![NicolasKion](https://avatars.githubusercontent.com/u/172045106?v=4)](https://github.com/NicolasKion "NicolasKion (102 commits)")[![TimKunze96](https://avatars.githubusercontent.com/u/57131860?v=4)](https://github.com/TimKunze96 "TimKunze96 (15 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (5 commits)")

---

Tags

api-clientesieve-onlinelaravellaravel-packagephplaravelesiNicolas Kion

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/nicolaskion-eve/health.svg)

```
[![Health](https://phpackages.com/badges/nicolaskion-eve/health.svg)](https://phpackages.com/packages/nicolaskion-eve)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.2k12.6M140](/packages/dedoc-scramble)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

818355.4k3](/packages/defstudio-telegraph)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5226.7k](/packages/simplestats-io-laravel-client)[lettermint/lettermint-laravel

Official Lettermint driver for Laravel

11124.6k1](/packages/lettermint-lettermint-laravel)

PHPackages © 2026

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