PHPackages                             petervandijck/mockingbird - 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. [PDF &amp; Document Generation](/categories/documents)
4. /
5. petervandijck/mockingbird

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

petervandijck/mockingbird
=========================

Laravel package for LlamaParse document parsing service

0.1(11mo ago)01MITPHPPHP ^8.2

Since Jul 23Pushed 11mo agoCompare

[ Source](https://github.com/petervandijck/mockingbird)[ Packagist](https://packagist.org/packages/petervandijck/mockingbird)[ RSS](/packages/petervandijck-mockingbird/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Mockingbird - LlamaParse Laravel Package
========================================

[](#mockingbird---llamaparse-laravel-package)

A Laravel package for integrating with the LlamaParse document parsing service from LlamaIndex.

Features
--------

[](#features)

- Upload documents to LlamaParse for parsing
- Track job status and retrieve results
- Webhook support for async processing
- Console commands for testing and management
- Configurable table names and timeouts
- Laravel 11+ and 12+ support

Installation
------------

[](#installation)

```
composer require petervandijck/mockingbird
```

### Publish Configuration

[](#publish-configuration)

```
php artisan vendor:publish --tag=llamaparse-config
```

### Publish and Run Migrations

[](#publish-and-run-migrations)

```
php artisan vendor:publish --tag=llamaparse-migrations
php artisan migrate
```

Configuration
-------------

[](#configuration)

Add your LlamaParse API key to your `.env` file:

```
LLAMAPARSE_API_KEY=your_api_key_here
```

Additional configuration options available in `config/llamaparse.php`:

```
return [
    'api_key' => env('LLAMAPARSE_API_KEY'),
    'api_url' => env('LLAMAPARSE_API_URL', 'https://api.cloud.llamaindex.ai/api/v1/parsing'),
    'webhook_path' => env('LLAMAPARSE_WEBHOOK_PATH', '/llamaparse/webhook'),
    'default_timeout' => env('LLAMAPARSE_DEFAULT_TIMEOUT', 300),
    'table_name' => env('LLAMAPARSE_TABLE_NAME', 'llama_parse_jobs'),
];
```

Usage
-----

[](#usage)

### Using the Service

[](#using-the-service)

```
use PeterVanDijck\Mockingbird\LlamaParseService;

$service = app(LlamaParseService::class);

// Upload a document
$result = $service->uploadDocument('path/to/document.pdf');
$jobId = $result['job_id'];

// Check job status
$status = $service->getJobStatus($jobId);

// Get markdown result (when job is complete)
$markdown = $service->getMarkdownResult($jobId);

// Wait for completion with timeout
$result = $service->waitForCompletion($jobId, 300);
```

### Using Actions

[](#using-actions)

```
use PeterVanDijck\Mockingbird\Actions\UploadDocument;
use PeterVanDijck\Mockingbird\Actions\CheckJobStatus;
use PeterVanDijck\Mockingbird\Actions\RetrieveResult;

// Upload document
$uploadAction = app(UploadDocument::class);
$result = $uploadAction->handle('document.pdf', 'https://your-webhook-url.com');

// Check status
$statusAction = app(CheckJobStatus::class);
$status = $statusAction->handle($jobId);

// Retrieve result
$resultAction = app(RetrieveResult::class);
$markdown = $resultAction->handle($jobId);
```

### Console Commands

[](#console-commands)

Test the service:

```
php artisan llamaparse:test document.pdf --webhook
```

Check job status:

```
php artisan llamaparse:status {job_id}
```

Get job result:

```
php artisan llamaparse:result {job_id}
```

### Working with the Model

[](#working-with-the-model)

```
use PeterVanDijck\Mockingbird\Models\LlamaParseJob;

// Find jobs
$job = LlamaParseJob::where('job_id', $jobId)->first();
$completedJobs = LlamaParseJob::where('status', 'success')->get();

// Check job status
if ($job->isComplete()) {
    // Job is either success or error
}

if ($job->isSuccessful()) {
    // Job completed successfully
    $result = $job->result;
}
```

### Webhook Support

[](#webhook-support)

The package includes webhook endpoints for receiving status updates:

- `POST /llamaparse/webhook` - Webhook endpoint for status updates
- `GET /test-llamaparse` - Test endpoint for trying the service
- `GET /llamaparse-status/{jobId}` - View job status
- `GET /llamaparse-result/{jobId}` - View job result

Testing Routes
--------------

[](#testing-routes)

Visit `/test-llamaparse` in your browser to test document upload and parsing with a sample PDF file.

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 11.0+ or 12.0+
- LlamaParse API key

License
-------

[](#license)

MIT License

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance51

Moderate activity, may be stable

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

345d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/518100?v=4)[Peter Van Dijck](/maintainers/petervandijck)[@petervandijck](https://github.com/petervandijck)

---

Top Contributors

[![petervandijck](https://avatars.githubusercontent.com/u/518100?v=4)](https://github.com/petervandijck "petervandijck (1 commits)")

---

Tags

laravelpdfdocument-parsingllamaparsellama-index

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/petervandijck-mockingbird/health.svg)

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

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[api-platform/laravel

API Platform support for Laravel

58171.5k14](/packages/api-platform-laravel)[ecotone/laravel

Ecotone for Laravel — CQRS, Event Sourcing, Sagas, Durable Workflows, and Outbox on top of Laravel Queue, via PHP attributes.

21318.6k3](/packages/ecotone-laravel)[initred/laravel-tabula

laravel-tabula is a tool for liberating data tables trapped inside PDF files for the Laravel framework.

1418.6k](/packages/initred-laravel-tabula)[nilgems/laravel-textract

A Laravel package to extract text from files like DOC, XL, Image, Pdf and more. I've developed this package by inspiring "npm textract".

195.8k](/packages/nilgems-laravel-textract)

PHPackages © 2026

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