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

ActivePackage[API Development](/categories/api)

tinhr/api-h5p
=============

Headless H5P Laravel REST API

v2.1.8(10mo ago)1131MITPHPPHP &gt;=7.4

Since Jun 20Pushed 10mo agoCompare

[ Source](https://github.com/iamtinhr/api-h5p)[ Packagist](https://packagist.org/packages/tinhr/api-h5p)[ RSS](/packages/tinhr-api-h5p/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (21)Used By (0)

Headless H5P Laravel API
========================

[](#headless-h5p-laravel-api)

Forked from [https://github.com/EscolaLMS](https://github.com/EscolaLMS/h5p)

Description
-----------

[](#description)

This package provides a Laravel API for interacting with H5P content without installing ***unrelated*** dependencies.

Original Documentation
======================

[](#original-documentation)

Features
--------

[](#features)

The lib allows headlessly

- play all h5p content - exposed all essential data, yet player is needed
- edit all h5p content - exposed all essential data, yet editor is needed
- CRUD libraries
- CRUD content
- upload library from `.h5p` file
- upload content from `.h5p` file

See [Swagger](https://escolalms.github.io/H5P/) documented endpoints.

To play the content you can use [EscolaLMS H5P Player](https://github.com/EscolaLMS/H5P-player)

Install
-------

[](#install)

1. `composer require tinhr/api-h5p`
2. `php artisan migrate`
3. `php artisan h5p:storage-link` see below

### Storage links

[](#storage-links)

You need to publish many of files to be availabe as public link.

`php artisan h5p:storage-link` which creates a symbolic link from `storage/h5` and `vendor/tinhr/h5p-core` and `vendor/tinhr/h5p-editor` to be accesible to public, as follows

```
public_path('h5p-core') => base_path().'vendor/tinhr/h5p-core',
public_path('h5p-editor') => base_path().'vendor/tinhr/h5p-editor',

```

### Cors

[](#cors)

All the endpoints need to be accesible from other domains, so [CORS](https://laravel.com/docs/8.x/routing#cors) must be properlly set.

Except of endpoints assets must expose CORS headers as well. You achive that by setting Apache/Nginx/Caddy/Whatever settings - below is example for Nginx for wildcard global access.

```
location ~* \.(eot|ttf|woff|woff2|jpg|jpeg|gif|png|wav|mp3|mp4|mov|ogg|webv)$ {
    add_header Access-Control-Allow-Origin *;
}

```

### Seeder

[](#seeder)

To seed content and library

```
php artisan db:seed --class="\EscolaLms\HeadlessH5P\Database\Seeders\ContentLibrarySeeder"

```

You can seed library and content with build-in seeders as command that are accessible with

- `php artisan h5p:seed` to add just libraries
- `php artisan h5p:seed --addContent` to add content with libraries

Road map
--------

[](#road-map)

- rewrite h5p core in a way like [luminare in typescript](https://github.com/lumieducation/lumi)

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance55

Moderate activity, may be stable

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

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

Total

20

Last Release

300d ago

Major Versions

v1.9 → v2.02025-07-08

### Community

Maintainers

![](https://www.gravatar.com/avatar/7488c1407b51f24238323de8495e8447f979a9e6040d79b3e54ea6abbe5b6caa?d=identicon)[iamtinhr](/maintainers/iamtinhr)

---

Top Contributors

[![iamtinhr](https://avatars.githubusercontent.com/u/151376853?v=4)](https://github.com/iamtinhr "iamtinhr (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[echolabsdev/prism

A powerful Laravel package for integrating Large Language Models (LLMs) into your applications.

2.3k388.3k10](/packages/echolabsdev-prism)[sburina/laravel-whmcs-up

WHMCS API client and user provider for Laravel

271.3k](/packages/sburina-laravel-whmcs-up)

PHPackages © 2026

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