PHP code example of enflow / redirect-pizza-php-sdk

1. Go to this page and download the library: Download enflow/redirect-pizza-php-sdk library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

enflow / redirect-pizza-php-sdk example snippets


use RedirectPizza\PhpSdk\RedirectPizza;

$redirectPizza = new RedirectPizza('your-api-token');

$redirect = $redirectPizza->createRedirect([
    'sources' => ['old-source.nl'],
    'destination' => 'new-fancy-site.nl',
    'redirect_type' => 'permanent',
    'keep_query_string' => false,
]);

// returns an iterator of RedirectPizza\PhpSdk\Dto\Redirect
$redirects = $redirectPizza->redirects();

foreach ($redirects as $redirect) {
    echo "Redirect: {$redirect->destination} (ID: {$redirect->id})\n";
}

use RedirectPizza\PhpSdk\RedirectPizza;

$redirectPizza = new RedirectPizza('rpa_XXXXXXXXXXXXXXXXXXX'); // https://redirect.pizza/api

$redirectPizza = new RedirectPizza('your-api-token', timeoutInSeconds: 30);

try {
    $redirectPizza->createRedirect([
        'destination' => 'invalid',
    ]);
} catch (\RedirectPizza\PhpSdk\Exceptions\ValidationException $exception) {
    $exception->getMessage(); // string describing the errors
    $exception->getErrors(); // array with all validation errors
}

// returns an iterator of RedirectPizza\PhpSdk\Dto\Redirect
$redirects = $redirectPizza->redirects();

// Optional search/filter query (status:active, tag:marketing, source:..., destination:...)
$redirects = $redirectPizza->redirects('status:active tag:marketing');

$redirect = $redirectPizza->createRedirect([
    'sources' => ['old-source.nl'],
    'destination' => 'new-fancy-site.nl',
    'redirect_type' => 'permanent',
    'keep_query_string' => false,
]);

$redirect = $redirectPizza->redirect($redirectId);

$redirect = $redirectPizza->updateRedirect($redirectId, [
    'sources' => ['old-source.nl'],
    'destination' => 'new-fancy-site-v2.nl',
    'redirect_type' => 'permanent',
    'keep_query_string' => true,
]);

$redirectPizza->pauseRedirect($redirectId);
$redirectPizza->resumeRedirect($redirectId);
$redirectPizza->pauseSource($redirectId, $sourceId);
$redirectPizza->resumeSource($redirectId, $sourceId);

$redirectPizza->deleteRedirect($redirectId);

$domains = $redirectPizza->domains();

// Optional search/filter query (status:verified, status:unverified, tag:marketing, or free-text FQDN)
$domains = $redirectPizza->domains('status:unverified example.com');

$domain = $redirectPizza->domain($domainId);

$domain = $redirectPizza->updateDomain($domainId, [
    'hsts' => ['status' => 'enabled', 'max_age' => 31536000],
    'waf' => ['status' => 'inherit'],
]);

$domain = $redirectPizza->checkDomainDns($domainId);

$result = $redirectPizza->applyAutomaticDns($domainId);
// $result->successful, $result->output

$redirectPizza->deleteDomain($domainId);

$emailForwards = $redirectPizza->emailForwards();

$emailForward = $redirectPizza->emailForward($emailForwardId);

$emailForward = $redirectPizza->createEmailForward([
    'domain_id' => 1,
    'alias' => 'hello',
    'destination' => '[email protected]',
]);

$emailForward = $redirectPizza->updateEmailForward($emailForwardId, [
    'destination' => '[email protected]',
]);

$redirectPizza->deleteEmailForward($emailForwardId);

use RedirectPizza\PhpSdk\Enums\AnalyticsDimension;

$hits = $redirectPizza->hitsTotal(start: '2025-04-30', end: '2025-05-20');
echo $hits->count;

$series = $redirectPizza->timeSeries(start: '2025-04-30', end: '2025-05-20');

$dimensions = $redirectPizza->dimensions(
    AnalyticsDimension::Countries,
    start: '2025-04-30',
    end: '2025-05-20',
);

use RedirectPizza\PhpSdk\Dto\RawHit;
use RedirectPizza\PhpSdk\Requests\Analytics\GetRawHitsRequest;

// Automatically requests the next page while meta.next_cursor is present
foreach ($redirectPizza->rawHits(start: '2025-04-30', end: '2025-05-20', query: 'redirect:123') as $hit) {
    /** @var RawHit $hit */
    echo "{$hit->createdAt} {$hit->fullUrl}\n";
}

$request = new GetRawHitsRequest(start: '2025-04-30', end: '2025-05-20');

$paginator = $redirectPizza->paginate($request);
$paginator->setPerPageLimit(100);

foreach ($paginator->items() as $hit) {
    // ...
}

$team = $redirectPizza->team();

$team = $redirectPizza->updateTeam([
    'name' => 'Acme Inc',
    'summary_frequency' => 'weekly',
]);

$users = $redirectPizza->users();

$user = $redirectPizza->inviteUser([
    'email' => '[email protected]',
    'role' => 'member',
    'access_type' => 'all',
]);

$user = $redirectPizza->updateUser($userId, [
    'role' => 'readonly',
    'access_type' => 'allowed',
    'tags' => ['marketing'],
]);

$redirectPizza->deleteUser($userId);

$result = $redirectPizza->testRedirect('https://example.com');
echo $result->status; // success, redirecting, upgrading, error

$qr = $redirectPizza->qrCode('https://example.com'); // JSON metadata + base64 image
// or binary: $response = $redirectPizza->qrCode('https://example.com', format: 'png');
composer