Manifest is a self-healing layer that fixes and retries failed API requests on the fly.
- 🎯 Fix failures automatically before they impact your users.
- 🔔 Get notified of root causes so you can fix them permanently.
- 🔌 Works across your stack with internal APIs, external services, and agent tools.
- PHP 8.2 or higher
- The opentelemetry extension:
pecl install opentelemetry && docker-php-ext-enable opentelemetryIn Docker, one line:
RUN pecl install opentelemetry && docker-php-ext-enable opentelemetryPHP cannot instrument an HTTP client without it, so the SDK sees nothing until it is installed.
"Install Manifest in this app: https://app-staging.manifest.build/prompt-php.md"
The prompt installs the extension, wires the loading order, and stops to let you paste your key.
composer require mnfst/manifest-phpManifest must load before your application makes its first HTTP call. A PHP hook cannot attach
to a function that has already run, so an SDK that loads late sees nothing. Point
auto_prepend_file at the bundled entry point:
; php.ini, a .user.ini, or your php-fpm pool config
auto_prepend_file = vendor/mnfst/manifest-php/prepend.phpOr call it yourself, as the first thing your application does:
use function Mnfst\manifest;
manifest(); // before any HTTP callLaravel and CakePHP need no code of their own.
- Create a project in your Manifest dashboard and copy its project key.
- Set the key as an environment variable:
export MNFST_KEY='your-project-key'Verify the install from your project directory:
vendor/bin/manifest doctorIt masks and validates the key, reports which coverage level is active, and tells you whether the SDK is loading early enough.
Send a request that would normally fail. Manifest catches it, repairs it, and retries:
use Illuminate\Support\Facades\Http;
$response = Http::post('https://api.example.com/orders', [
'limit' => 500, // Invalid? Manifest fixes it and retries.
]);
echo $response->status(); // See the 200 OK response.Check your Manifest dashboard to see all repairs and insights.
| The app calls an API via… | Covered |
|---|---|
Laravel's Http facade |
✅ healed |
| Guzzle, any client, including one built inside a third-party library | ✅ healed |
CakePHP's Cake\Http\Client |
✅ healed |
A library with its own raw curl_* client, such as stripe/stripe-php |
|
file_get_contents |
❌ not seen |
The curl_* row is a permanent limit of PHP, not a temporary gap. The extension can observe an
internal function but cannot replace its return value, so those failures appear in your dashboard
while your application still receives the original error.
| Infrastructure | Supported |
|---|---|
| Docker, Kubernetes | ✅ one line in the Dockerfile |
| A VPS or your own server (Forge, Ploi) | ✅ pecl install opentelemetry |
| Heroku, Platform.sh | |
| Laravel Vapor, Bref | |
| Shared hosting (cPanel, Hostinger, OVH) | ❌ you do not control the runtime |
Configuration, limits & development · API contract · Website

