PHPackages                             nakipelo/tourism-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nakipelo/tourism-api

ActiveLibrary[API Development](/categories/api)

nakipelo/tourism-api
====================

A Laravel 12 package for working with Russian Tourism API (tourism.fsa.gov.ru)

v1.0.0(8mo ago)04MITPHPPHP ^8.3

Since Aug 19Pushed 8mo agoCompare

[ Source](https://github.com/nakipelo/tourism-api)[ Packagist](https://packagist.org/packages/nakipelo/tourism-api)[ RSS](/packages/nakipelo-tourism-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

Russian Tourism API Package for Laravel 12
==========================================

[](#russian-tourism-api-package-for-laravel-12)

A Laravel package for integrating with the Russian Tourism API (tourism.fsa.gov.ru) to access hotels, resorts, and destinations data.

Features
--------

[](#features)

- 🏨 **Hotels API** - Access hotel data from Russian Tourism API
- 🏖️ **Resorts API** - Get resort information and details
- 🗺️ **Destinations API** - Retrieve destination data
- 🔄 **Retry Logic** - Automatic retry on API failures
- ⚡ **Performance** - Optimized HTTP requests with timeout handling
- 🛡️ **Error Handling** - Comprehensive error handling and logging

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 12.0+

Installation
------------

[](#installation)

### Via Composer

[](#via-composer)

```
composer require nakipelo/tourism-api
```

### Manual Installation

[](#manual-installation)

1. Clone the repository:

```
git clone https://github.com/nakipelo/tourism-api.git
```

2. Install dependencies:

```
composer install
```

3. Publish the configuration:

```
php artisan vendor:publish --tag=tourism-api
```

Configuration
-------------

[](#configuration)

The package configuration file will be published to `config/tourism-api.php`. You can modify the following settings:

```
return [
    'base_url' => env('TOURISM_API_BASE_URL', 'https://tourism.fsa.gov.ru'),
    'api_version' => env('TOURISM_API_VERSION', 'v1'),
    'timeout' => env('TOURISM_API_TIMEOUT', 30),
    'retry_attempts' => env('TOURISM_API_RETRY_ATTEMPTS', 3),

    'user_agent' => env('TOURISM_API_USER_AGENT', 'Nakipelo-Tourism-API/1.0'),
    'endpoints' => [
        'hotels' => '/ru/resorts/showcase/hotels',
        'resorts' => '/ru/resorts',
        'destinations' => '/ru/destinations',
    ],
];
```

Usage
-----

[](#usage)

### API Integration

[](#api-integration)

The package integrates with the following Russian Tourism API endpoints:

- **Hotels Showcase**: `/api/v1/resorts/hotels/showcase` - Get paginated list of hotels
- **Hotel Main Info**: `/api/v1/resorts/hotels/{id}/main` - Get detailed hotel information
- **Hotel Additional Info**: `/api/v1/resorts/common/{id}/additional-info` - Get additional hotel details
- **Hotel Drawer**: `/api/v1/resorts/hotels/{id}/drawer` - Get hotel drawer information

### Reference Data

[](#reference-data)

- **Regions**: `/api/v1/nsi/regions/get` - Get regions list
- **Hotel Statuses**: `/api/v1/nsi/hotelStatus/get` - Get hotel status types
- **Hotel Types**: `/api/v1/nsi/hotelTypes/get` - Get hotel type categories
- **Room Categories**: `/api/v1/nsi/roomCategory/get` - Get room category types
- **Hotel Services**: `/api/v1/resorts/filter/services/hotelServices` - Get available hotel services

### Service Usage

[](#service-usage)

```
use Nakipelo\TourismApi\Services\TourismApiService;

// Get hotels showcase with pagination
$hotels = app(TourismApiService::class)->getHotelsShowcase([
    'page' => 0,
    'limit' => 20
]);

// Get specific hotel details
$hotel = app(TourismApiService::class)->getHotelMain('c02d00bf-c607-11ef-92da-8ba33c42ca02');

// Get hotel additional info
$additionalInfo = app(TourismApiService::class)->getHotelAdditionalInfo('c02d00bf-c607-11ef-92da-8ba33c42ca02');

// Get reference data
$regions = app(TourismApiService::class)->getRegions();
$hotelTypes = app(TourismApiService::class)->getHotelTypes();
$roomCategories = app(TourismApiService::class)->getRoomCategories();
```

Testing
-------

[](#testing)

Run the test suite:

```
composer test
```

Contributing
------------

[](#contributing)

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

Support
-------

[](#support)

If you encounter any issues or have questions, please open an issue on GitHub.

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

###  Health Score

32

—

LowBetter than 71% of packages

Maintenance62

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

262d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fa409df9a204429e6f7bb8a0f2baf6516891c903be4d176b463bc79453a1b555?d=identicon)[EgorGruzdev](/maintainers/EgorGruzdev)

---

Top Contributors

[![EgorGruzdev](https://avatars.githubusercontent.com/u/930669?v=4)](https://github.com/EgorGruzdev "EgorGruzdev (10 commits)")

---

Tags

apilaravelpackagetourismhotelsRussiafsaresorts

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/nakipelo-tourism-api/health.svg)

```
[![Health](https://phpackages.com/badges/nakipelo-tourism-api/health.svg)](https://phpackages.com/packages/nakipelo-tourism-api)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k7.6M74](/packages/openai-php-laravel)[nickurt/laravel-postcodeapi

Universal PostcodeApi for Laravel 11.x/12.x/13.x

97221.2k](/packages/nickurt-laravel-postcodeapi)[mozex/anthropic-laravel

Anthropic PHP for Laravel is a supercharged PHP API client that allows you to interact with the Anthropic API

71226.4k1](/packages/mozex-anthropic-laravel)[bmatovu/laravel-mtn-momo

Laravel MTN MOMO integration.

14310.9k](/packages/bmatovu-laravel-mtn-momo)[scriptdevelop/whatsapp-manager

Paquete para manejo de WhatsApp Business API en Laravel

762.6k](/packages/scriptdevelop-whatsapp-manager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
