PHPackages                             semitexa/api - 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. semitexa/api

ActiveSemitexa-module[API Development](/categories/api)

semitexa/api
============

Semitexa API - external API product layer with machine credentials, versioned routes, and M2M contracts

2026.07.06.1438(1mo ago)0852MITPHPPHP ^8.4

Since Mar 23Pushed 1w agoCompare

[ Source](https://github.com/semitexa/semitexa-api)[ Packagist](https://packagist.org/packages/semitexa/api)[ RSS](/packages/semitexa-api/feed)WikiDiscussions master Synced 1w ago

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

Semitexa API
============

[](#semitexa-api)

External API product layer for Semitexa with machine-to-machine authentication, versioned routes, and structured error envelopes.

Purpose
-------

[](#purpose)

Provides the opt-in external API surface for Semitexa applications. Routes marked with `#[ExternalApi]` receive machine-facing JSON error envelopes for domain failures, Bearer token M2M authentication via `MachineAuthHandler`, and API versioning with `#[ApiVersion]` including deprecation and sunset headers.

Role in Semitexa
----------------

[](#role-in-semitexa)

Depends on `semitexa/core` and `semitexa/auth`. Enriches Core's route metadata with `external_api` and `api_version` extension keys via `ApiRouteMetadataResolver`. Internal routes remain completely unaffected by this package.

Key Features
------------

[](#key-features)

- `#[ExternalApi]` attribute for opt-in API route designation
- `#[ApiVersion]` with deprecation and sunset metadata headers
- `MachineAuthHandler` supporting Bearer `{id}:{secret}` token format
- `ExternalApiExceptionMapper` producing machine-readable JSON error envelopes for `DomainException` routes and falling back to Core's generic 500 response for unexpected throwables
- `MachinePrincipal` implementing `AuthenticatableInterface`
- `MachineCredential` entity with scopes, revocation, and audit support

Notes
-----

[](#notes)

Only routes explicitly marked with `#[ExternalApi]` receive API behavior. All other routes continue to use Core's default exception mapping and response handling.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance96

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 55% 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 ~7 days

Recently: every ~18 days

Total

14

Last Release

32d ago

Major Versions

0.1.3 → 2026.04.03.12402026-04-03

v0.1.4 → 2026.05.08.16402026-05-08

### Community

Maintainers

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

---

Top Contributors

[![syntaxwanderer](https://avatars.githubusercontent.com/u/1311643?v=4)](https://github.com/syntaxwanderer "syntaxwanderer (33 commits)")[![needalicense](https://avatars.githubusercontent.com/u/13330467?v=4)](https://github.com/needalicense "needalicense (20 commits)")[![goosyboosy](https://avatars.githubusercontent.com/u/13351014?v=4)](https://github.com/goosyboosy "goosyboosy (5 commits)")[![tarashanych](https://avatars.githubusercontent.com/u/49571976?v=4)](https://github.com/tarashanych "tarashanych (2 commits)")

---

Tags

apim2mmachine-authsemitexaversioningapiversioningm2msemitexamachine-auth

### Embed Badge

![Health badge](/badges/semitexa-api/health.svg)

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

###  Alternatives

[grazulex/laravel-apiroute

Complete API versioning lifecycle management for Laravel

11321.9k](/packages/grazulex-laravel-apiroute)[shahghasiadil/laravel-api-versioning

Elegant attribute-based API versioning solution for Laravel applications with built-in deprecation management and version inheritance

2916.3k](/packages/shahghasiadil-laravel-api-versioning)[juliomotol/lapiv

API versioning for Laravel made easy

238.2k](/packages/juliomotol-lapiv)

PHPackages © 2026

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