jeffersongoncalves / laravel-ahrefs
A lightweight Ahrefs API v3 client for Laravel — domain rating, backlinks, referring domains, organic keywords, top pages, and keyword research.
Package info
github.com/jeffersongoncalves/laravel-ahrefs
pkg:composer/jeffersongoncalves/laravel-ahrefs
Fund package maintenance!
Requires
- php: ^8.2
- illuminate/support: ^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.21
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-06 00:50:20 UTC
README
Laravel Ahrefs
A lightweight Ahrefs API v3 client for Laravel. It wraps the Site Explorer and Keywords Explorer endpoints behind a small Ahrefs client/facade, threads your Bearer token, and returns the decoded JSON body — no DTOs, no response wrappers.
Features
- Domain Rating —
domainRating() - Backlinks —
backlinks() - Referring domains —
refDomains() - Organic keywords —
organicKeywords() - Top pages —
topPages() - Keyword overview —
keywordOverview() - Keyword suggestions —
keywordSuggestions() - SERP overview —
serpOverview() - A non-2xx response throws
Illuminate\Http\Client\RequestException - Optional
mode/country/limitparams are omitted from the query when leftnull
Installation
composer require jeffersongoncalves/laravel-ahrefs
Optionally publish the config file:
php artisan vendor:publish --tag="ahrefs-config"
Configuration
Add to your .env:
AHREFS_API_KEY=your-ahrefs-api-token
Generate a token at https://app.ahrefs.com/api/keys.
Config Options
// config/ahrefs.php return [ 'token' => env('AHREFS_API_KEY'), 'base_url' => env('AHREFS_BASE_URL', 'https://api.ahrefs.com/v3'), ];
When ahrefs.token is null the client falls back to config('services.ahrefs.token').
Usage
Via the facade:
use JeffersonGoncalves\Ahrefs\Facades\Ahrefs; Ahrefs::domainRating('example.com'); Ahrefs::backlinks('example.com', mode: 'subdomains', limit: 50); Ahrefs::refDomains('example.com', mode: 'domain', limit: 100); Ahrefs::organicKeywords('example.com', mode: 'exact', country: 'us', limit: 20); Ahrefs::topPages('example.com', mode: 'domain', country: 'br', limit: 10); Ahrefs::keywordOverview(['laravel', 'php'], country: 'us'); // or a single keyword / comma-separated string Ahrefs::keywordOverview('laravel', country: 'us'); Ahrefs::keywordSuggestions('laravel', country: 'us', limit: 25); Ahrefs::serpOverview('laravel', country: 'us');
Or inject/resolve the underlying client:
use JeffersonGoncalves\Ahrefs\Ahrefs; $ahrefs = app(Ahrefs::class); $ahrefs->domainRating('example.com');
mode values
domain (default), subdomains, prefix, exact — accepted by backlinks(), refDomains(), organicKeywords(), and topPages().
Error handling
use Illuminate\Http\Client\RequestException; try { $rating = Ahrefs::domainRating('example.com'); } catch (RequestException $e) { // $e->response->status(), $e->response->json(), ... }
Testing
composer test
Static Analysis
composer analyse
Code Formatting
composer format
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
