Download the PHP package seatplus/eveapi without Composer
On this page you can find all versions of the php package seatplus/eveapi. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package eveapi
seatplus/eveapi
The EVE Online data-fetching layer for the seatplus platform. Provides queued ESI jobs, Eloquent models for EVE entities, Laravel Horizon integration, SDE import, and reactive character scheduling.
Architecture
eveapi is the second tier of the four-package seatplus monorepo. It has a strict one-way dependency hierarchy:
Lower packages never import from higher packages.
ESI Data Flow
Recording happens transparently: RecordingEsiClient wraps every invoke() call and stores X-Ratelimit-Remaining + X-ESI-Error-Limit-Remain in Redis for the proactive rate-limit guard.
For full architecture decisions see ARCHITECTURE.md.
Requirements
| Dependency | Version |
|---|---|
| PHP | ^8.5 |
| Laravel | ^13.0 |
| PostgreSQL | 17+ (tests), any for production |
| Redis | 7+ (required for Horizon and rate-limit tracking) |
| seatplus/esi-client | ^4.1 |
| seatplus/esi-schema | ^1.3 (transitive) |
Installation
Publish and run the migrations:
Features
ESI Queue Jobs
All ESI leaf jobs extend EsiJob (ShouldQueue + ShouldBeUnique, 10 tries, exponential backoff). Each job declares the esi-schema resource class it calls via OPERATION_CLASS, and implements tags() and executeJob(). For authenticated endpoints, override getRefreshToken().
Public endpoint example:
Authenticated endpoint — additionally override getRefreshToken():
Paginated endpoint — loop manually using $response->pages:
Eloquent Models for EVE Data
| Entity | Models |
|---|---|
| Character | CharacterInfo, CharacterAffiliation, CharacterRole, CorporationHistory |
| Corporation | CorporationInfo, CorporationMemberTracking, CorporationDivision |
| Alliance | AllianceInfo |
| Assets | Asset |
Mail, MailRecipients |
|
| Skills | Skill, SkillQueue |
| Other | RefreshToken, SsoScopes, Schedules, BatchUpdate, BatchStatistic |
Reactive Character Scheduling
CharacterBatchJob self-reschedules character data refreshes based on ESI Cache-Control / Expires headers. When a character's refresh window opens, the job re-queues itself automatically — no cron polling required.
ESI Rate-Limit Tracking
Per-(group, characterId) bucket tracking prevents hitting ESI error limits. Jobs back off transparently when a bucket is close to the limit.
SDE Import
Imports the EVE Static Data Export (universe types, groups, categories, regions, constellations, and solar systems) directly from CCP's FTP:
The SDE import is also scheduled to run automatically every week.
EVE-Compliant User-Agent
On boot, EveapiServiceProvider sets the EVE-compliant User-Agent header (sourced from seatplus/esi-client's EsiConfiguration) on all outbound Guzzle requests.
Artisan Commands
| Command | Description |
|---|---|
seatplus:sde-import |
Download and import the EVE SDE |
seatplus:check:endpoints |
Verify configured ESI endpoints are reachable |
seatplus:cache:clear [--force] |
Clear the ESI HTTP response cache |
Testing
Tests require a running PostgreSQL instance (seatplus/secret @ 127.0.0.1:5432) and Redis (127.0.0.1:6379).
Changelog
Please see CHANGELOG for recent changes.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
MIT. Please see LICENSE for details.
All versions of eveapi with dependencies
ext-json Version *
ext-redis Version *
laravel/framework Version ^13.0
laravel/horizon Version ^5.0
seatplus/esi-client Version ^5.0
seatplus/esi-schema Version ^5.0