Search by

A Laravel client for the G2 API — reviews, products, reports, competitors, categories, and tracking events.

Maintainers

Package info

github.com/jeffersongoncalves/laravel-g2

pkg:composer/jeffersongoncalves/laravel-g2

Transparency log

Fund package maintenance!

jeffersongoncalves

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-09-07 00:08 UTC

This package is auto-updated.

Last update: 2026-09-07 00:09:03 UTC


README

Laravel G2

Laravel G2

Tests PHPStan Code Style Latest Version on Packagist Total Downloads License

A Laravel client for the G2 API. A fluent G2 facade groups the reviews, products, reports, competitors, categories, and tracking endpoints behind resource accessors, authenticates every request with a token header, and throws a G2Exception on a non-2xx response instead of returning a silent error array.

Features

  • Reviewsreviews()->list(), get()
  • Productsproducts()->list(), get()
  • Reportsreports()->list(), get()
  • Competitorscompetitors()->list()
  • Categoriescategories()->list(), get()
  • Trackingtracking()->visitors()
  • Thin by design — every method returns the raw decoded JSON:API response as an array, no DTOs
  • Fails loud — a non-2xx response throws G2Exception carrying the API's error message and HTTP status code

Installation

composer require jeffersongoncalves/laravel-g2

Optionally publish the config file:

php artisan vendor:publish --tag="g2-config"

Configuration

Add to your .env:

G2_API_TOKEN=your-api-token

Request API access at https://data.g2.com/api/v1 to get your token.

Config Options

// config/g2.php
return [
    'token' => env('G2_API_TOKEN'),
    'base_url' => env('G2_BASE_URL', 'https://data.g2.com/api/v1'),
];

Usage

use JeffersonGoncalves\G2\Facades\G2;
use JeffersonGoncalves\G2\Exceptions\G2Exception;

Reviews

G2::reviews()->list(productId: '123', state: 'published', page: 1, perPage: 25);
G2::reviews()->get('456');

Products

G2::products()->list(name: 'laravel', page: 1, perPage: 25);
G2::products()->get('123');

Reports

G2::reports()->list(page: 1, perPage: 25);
G2::reports()->get('789');

Competitors

G2::competitors()->list(productId: '123', page: 1, perPage: 25);

Categories

G2::categories()->list(name: 'crm', page: 1, perPage: 25);
G2::categories()->get('321');

Tracking

G2::tracking()->visitors(startDate: '2026-01-01', endDate: '2026-01-31', page: 1, perPage: 25);

Handling errors

try {
    $result = G2::products()->get('123');
} catch (G2Exception $e) {
    // $e->getMessage() — the API's errors[0].detail/title, or the raw response body
    // $e->statusCode  — the HTTP status code returned by G2
}

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

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.