This repository contains a PHP client for interacting with the Finstat API services. Finstat provides financial and corporate data for businesses in Slovakia and the Czech Republic.
- Retrieve detailed company information by ICO (Company ID)
- Search companies using autocomplete functionality
- Monitor changes in company data
- Access daily data diffs
- Support for both Slovak and Czech business registries
composer require finstat/client-api
Before using the API client, you need to set up your credentials:
// Basic API configuration
$apiUrl = 'https://www.finstat.sk/api/'; // URL for Slovak API (use 'https://cz.finstat.sk/api/' for Czech API)
$apiKey = 'YOUR_API_KEY'; // Your unique API key
$privateKey = 'YOUR_PRIVATE_KEY'; // Your private key
$stationId = 'Your Station ID'; // Identifier for the station making the request
$stationName = 'Your Station Name'; // Name or description of the station
$timeout = 10; // Timeout in seconds for server response
$json = false; // Set to true if you want the API to return responses as JSON
<?php
require_once(__DIR__ . '/../FinStatApi/FinstatApi.php');
require_once(__DIR__ . '/../FinStat.Client/ViewModel/AutoCompleteResult.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Detail/BaseResult.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Detail/BasicResult.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Detail/DetailResult.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Detail/ExtendedResult.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Detail/UltimateResult.php');
// Initialize the API client
$api = new FinstatApi($apiUrl, $apiKey, $privateKey, $stationId, $stationName, $timeout);
// Get basic company information
$ico = '35757442'; // Example company ICO
$basicInfo = $api->Request($ico, "basic", $json);
// Get detailed company information
$detailInfo = $api->Request($ico, "detail", $json);
// Get extended company information
$extendedInfo = $api->Request($ico, "extended", $json);
// Get ultimate (most comprehensive) company information
$ultimateInfo = $api->Request($ico, "ultimate", $json);
// Search for companies by name
$autocompleteResults = $api->RequestAutoComplete('volkswagen', $json);
// Check API usage limits
$limits = $api->GetAPILimits();
<?php
require_once(__DIR__ . '/../FinStatApiCZ/FinstatApi.php');
require_once(__DIR__ . '/../FinStat.Client/ViewModel/AutoCompleteResult.php');
require_once(__DIR__ . '/../FinStatCZ.ViewModel/Detail/DetailResult.php');
require_once(__DIR__ . '/../FinStatCZ.ViewModel/Detail/PremiumCZResult.php');
// Initialize the API client for Czech companies
$apiUrl = 'https://cz.finstat.sk/api/';
$api = new FinstatApiCz\FinstatApi($apiUrl, $apiKey, $privateKey, $stationId, $stationName, $timeout);
// Get basic company information
$ico = '48207349'; // Example Czech company ICO
$basicInfo = $api->Request($ico, "basic", $json);
// Get detailed company information
$detailInfo = $api->Request($ico, "detail", $json);
// Get premium company information
$premiumInfo = $api->Request($ico, "premiumcz", $json);
// Search for companies by name
$autocompleteResults = $api->RequestAutoComplete('volkswagen', $json);
<?php
require_once(__DIR__ . '/../FinStatApi/FinstatMonitoringApi.php');
require_once(__DIR__ . '/../FinStat.Client/ViewModel/Monitoring/MonitoringReportResult.php');
// Initialize the monitoring API client
$api = new FinstatMonitoringApi($apiUrl, $apiKey, $privateKey, $stationId, $stationName, $timeout);
// Add a company to monitoring by ICO
$ico = '35757442';
$success = $api->AddToMonitoring($ico, $json);
// Add a date to monitoring
$date = "1.1.1991";
$success = $api->AddDateToMonitoring($date, $json);
// Get list of monitored ICOs
$monitoredList = $api->MonitoringList($json);
// Get list of monitored dates
$monitoredDateList = $api->MonitoringDateList($json);
// Remove a company from monitoring
$success = $api->RemoveFromMonitoring($ico, $json);
// Remove a date from monitoring
$success = $api->RemoveDateFromMonitoring($date, $json);
// Get monitoring reports
$reports = $api->MonitoringReport($json);
$dateReports = $api->MonitoringDateReport($json);
<?php
require_once(__DIR__ . '/../FinStatApi/FinstatDailyDiffApi.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Diff/DailyDiff.php');
require_once(__DIR__ . '/../FinStat.ViewModel/Diff/DailyDiffList.php');
// Initialize the daily diff API client
$api = new FinstatDailyDiffApi($apiUrl, $apiKey, $privateKey, $stationId, $stationName, $timeout);
// Get list of available daily diffs
$list = $api->RequestListOfDailyDiffs($json);
// Download a specific daily diff file
$file = "example_file.zip";
$data = $api->DownloadDailyDiffFile($file, $file);
The API returns structured data objects containing company information. Depending on the request type, different data fields are available:
Ico
- Company IDName
- Company nameStreet
- Street addressStreetNumber
- Street numberZipCode
- ZIP/Postal codeCity
- CityDistrict
- DistrictRegion
- RegionCountry
- CountryUrl
- Finstat URL for the company
- Legal form information
- Registration details
- Financial data (revenue, profit)
- Credit scores
- Warning indicators
- Bank accounts
- Employee counts
- Ownership information
- Statutory representatives
- Web pages
- And many more...
The API client throws exceptions in case of errors. Make sure to handle these appropriately:
try {
$response = $api->Request($ico, "basic", $json);
} catch (Exception $e) {
// Handle error
$code = $e->getCode();
$message = $e->getMessage();
$data = $e->getData();
}
You can check your current API usage limits:
$limits = $api->GetAPILimits();
// Example output format:
// [
// 'daily' => ['current' => 10, 'max' => 100],
// 'monthly' => ['current' => 50, 'max' => 1000]
// ]
- PHP 7.1 or higher
- cURL extension
- Zlib extension
- DOM extension
- JSON extension (for JSON responses)
- SimpleXML extension (for XML responses)
MIT License
For API access and keys, please contact info@finstat.sk