Official PHP SDK for Loterias API

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 1

Open Issues: 0

pkg:composer/loterias-api/sdk

dev-main 2026-01-15 00:15 UTC

This package is auto-updated.

Last update: 2026-01-15 00:20:18 UTC


README

Official PHP SDK for Loteria API.

Requirements

  • PHP 8.1 or higher
  • Guzzle HTTP client

Installation

composer require loteria-api/sdk

Quick Start

use LoteriaApi\LoteriaApi;

$api = new LoteriaApi('lat_xxx...'); // Get your API key at https://loteria-api.com

// Get latest Euromillones result
$result = $api->results->getLatest('euromillones');
print_r($result['data']['combination']); // [4, 15, 23, 38, 42]
print_r($result['data']['resultData']['estrellas']); // [3, 9]

Usage Examples

Get Latest Results

// Latest result for a specific game
$euromillones = $api->results->getLatest('euromillones');
$primitiva = $api->results->getLatest('primitiva');
$bonoloto = $api->results->getLatest('bonoloto');

// Latest results for ALL games
$all = $api->results->getLatestAll();
print_r($all['data']['euromillones']['combination']);
print_r($all['data']['primitiva']['combination']);

Check Your Numbers

$result = $api->results->checkNumbers(
    gameType: 'euromillones',
    numbers: [4, 15, 23, 38, 42],
    extraNumbers: [3, 11] // Stars for Euromillones
);

if ($result['data']['isWinner']) {
    echo "You won! Prize: " . $result['data']['prize']['formattedPrize'] . "\n";
    echo "Category: " . $result['data']['prize']['categoryName'] . "\n";
} else {
    echo "No luck. You matched " . $result['data']['mainNumbersMatched'] . " numbers.\n";
}

Query Historical Results

// Results from a date range
$results = $api->results->getByDateRange(
    gameType: 'euromillones',
    from: '2024-01-01',
    to: '2024-12-31',
    page: 1,
    limit: 10
);

// Results from a specific date
$dateResults = $api->results->getByDate('primitiva', '2024-06-15');

// Filter by minimum jackpot
$bigJackpots = $api->results->listByGame('euromillones', [
    'minJackpot' => 100000000, // 100 million
    'year' => 2024
]);

Get Upcoming Draws

// All upcoming draws
$upcoming = $api->draws->listUpcoming();

// Next draw for each game
$next = $api->draws->getNextAll();
echo "Next Euromillones: " . $next['data']['euromillones']['drawDate'] . "\n";
echo "Jackpot: " . $next['data']['euromillones']['jackpotFormatted'] . "\n";

// Upcoming draws for a specific game
$euromillonesDraws = $api->draws->listUpcomingByGame('euromillones');

Available Game Types

Slug Name
bonoloto Bonoloto
euromillones Euromillones
primitiva La Primitiva
gordo El Gordo
nacional Loteria Nacional
eurodreams EuroDreams
quiniela La Quiniela
quinigol Quinigol
lototurf Lototurf
quintuple Quintuple Plus

You can use string literals or the GameType enum:

use LoteriaApi\Enums\GameType;

$result = $api->results->getLatest(GameType::EUROMILLONES->value);
// or
$result = $api->results->getLatest('euromillones');

Error Handling

use LoteriaApi\LoteriaApi;
use LoteriaApi\Exceptions\LoteriaApiException;

try {
    $result = $api->results->getLatest('euromillones');
} catch (LoteriaApiException $e) {
    echo "API Error: " . $e->getErrorCode() . "\n";
    echo "Message: " . $e->getMessage() . "\n";
    echo "Status: " . $e->getStatusCode() . "\n";

    if ($e->getErrorCode() === 'RATE_LIMIT_EXCEEDED') {
        // Wait and retry
    }
    if ($e->getErrorCode() === 'TOKEN_LIMIT_EXCEEDED') {
        // Upgrade plan or wait for reset
    }
}

Configuration

$api = new LoteriaApi(
    apiKey: 'lat_xxx...',                              // Required
    baseUrl: 'https://custom.url',                     // Optional (default: https://api.loteria-api.com/api/v1)
    timeout: 60                                        // Optional (default: 30 seconds)
);

License

MIT