Search by

jeffersongoncalves / laravel-ahrefs

A lightweight Ahrefs API v3 client for Laravel — domain rating, backlinks, referring domains, organic keywords, top pages, and keyword research.

Maintainers

Package info

github.com/jeffersongoncalves/laravel-ahrefs

pkg:composer/jeffersongoncalves/laravel-ahrefs

Transparency log

Fund package maintenance!

jeffersongoncalves

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.0 2026-09-06 00:49 UTC

This package is auto-updated.

Last update: 2026-09-06 00:50:20 UTC


README

Laravel Ahrefs

Laravel Ahrefs

Tests PHPStan Code Style Latest Version on Packagist Total Downloads License

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 RatingdomainRating()
  • Backlinksbacklinks()
  • Referring domainsrefDomains()
  • Organic keywordsorganicKeywords()
  • Top pagestopPages()
  • Keyword overviewkeywordOverview()
  • Keyword suggestionskeywordSuggestions()
  • SERP overviewserpOverview()
  • A non-2xx response throws Illuminate\Http\Client\RequestException
  • Optional mode/country/limit params are omitted from the query when left null

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.