Inkspan › Guides › How to generate a PDF from HTML in Laravel

How to generate a PDF from HTML in Laravel

Call the Inkspan /v1/generate/html endpoint from Laravel to generate a PDF from HTML — no headless browser, font stack, or rendering infrastructure in your deploy. Keep your API key in the environment and POST.

Laravel's HTTP client returns the raw body via ->body(). Store it with the Storage facade or return it as a download response.

Laravel example

// app/Http/Controllers/PdfController.php
use Illuminate\Support\Facades\Http;

$res = Http::withHeaders(['X-API-Key' => config('services.inkspan.key')])
    ->post('https://api.inkspan.dev/v1/generate/html', {"html": "<h1>Invoice</h1>"});

$res->throw();
return response($res->body(), 200)
    ->header('Content-Type', 'application/pdf');

Request parameters

NameTypeRequiredDescription
htmlstringyesThe HTML document or fragment to render.
filenamestringnoFilename in the response's Content-Disposition. Defaults to document.pdf.

Response

Returns a PDF as a binary stream with Content-Type: application/pdf and Content-Disposition: attachment; filename=document.pdf. Write the response body straight to disk — do not parse it as JSON.

Production notes

Put INKSPAN_KEY in .env and read it with env() inside a config file so it survives config:cache.

Errors

StatusMeaningFix
401Invalid or missing API keySend your key in the X-API-Key header.
402Monthly quota exceededThe response reports used/quota. Upgrade at inkspan.dev/#pricing.
422Missing or invalid parameterCheck required fields in the table above — the body names the offending field.

Failed requests do not count against your quota; only successful ones are metered.

Get a free API key →

Same operation in cURL · Python · Node.js · Other frameworks: Next.js · Django · Ruby on Rails · PHP · All guides