silktide/semrush-api

This package is abandoned and no longer maintained. No replacement package was suggested.

SEMrush API client

1.7.2 2022-03-21 13:29 UTC

README

Build Status Code Climate Test Coverage

A PHP API client for the SEMrush API.

Supported actions:

Usage

Installation

    composer require silktide/semrush-api

Setup

This library was designed to use Dependency Injection (DI). If you don't use DI, you could use the factory to set up the API client:

    $client = \Silktide\SemRushApi\ClientFactory::create("[YOUR SEMRUSH API KEY]");

Caching

The API library can use a PSR-16 style cache to reduce calls to the API.

    $cache = new Psr16CompliantCache();
    $client->setCache($cache)

API calls

Domain ranks

Getting the SEMrush "domain_ranks" for a website:

    $result = $client->getDomainRanks('silktide.com');

Domain rank

Getting the SEMrush "domain_rank" for a website:

    $result = $client->getDomainRank(
        'silktide.com',
        [
            'database' => \Silktide\SemRushApi\Data\Database::DATABASE_GOOGLE_US
        ]
    );

Domain rank history

Getting the SEMrush "domain_rank_history" for a website:

    $result = $client->getDomainRankHistory(
        'silktide.com',
        [
            'database' => \Silktide\SemRushApi\Data\Database::DATABASE_GOOGLE_US
        ]
    );

Domain organic

Getting the SEMrush "domain_organic" for a website:

    $result = $client->getDomainOrganic(
        'silktide.com',
        [
            'database' => \Silktide\SemRushApi\Data\Database::DATABASE_GOOGLE_US
        ]
    );

Domain adwords

Getting the SEMrush "domain_adwords" for a website:

    $result = $client->getDomainAdwords(
        'silktide.com',
        [
            'database' => \Silktide\SemRushApi\Data\Database::DATABASE_GOOGLE_US
        ]
    );

Domain adwords unique

Getting the SEMrush "domain_adwords_unique" for a website:

    $result = $client->getDomainAdwordsUnique(
        'silktide.com',
        [
            'database' => \Silktide\SemRushApi\Data\Database::DATABASE_GOOGLE_US
        ]
    );

Using options

Here's an example of passing options to the domain ranks action in order to return a specific set of columns.

    $result = $client->getDomainRanks('silktide.com', [
        'export_columns' => [
            \Silktide\SemRushApi\Data\Column::COLUMN_OVERVIEW_ADWORDS_BUDGET,
            \Silktide\SemRushApi\Data\Column::COLUMN_OVERVIEW_ADWORDS_KEYWORDS,
            \Silktide\SemRushApi\Data\Column::COLUMN_OVERVIEW_ADWORDS_TRAFFIC
         ]
    ]);

Using results

All API actions will return a Result object. Result objects contain a number of Row objects and are iterable and countable. Here's a (non exhaustive) example of how they can be used.

    foreach ($result as $row) {
        $budget = $row->getValue(\Silktide\SemRushApi\Data\Column::COLUMN_OVERVIEW_ADWORDS_BUDGET);
        echo "\nThe AdWords spend of this site in the last month was an estimated ${$budget}";
    }