invezgo/sdk
Composer 安装命令:
composer require invezgo/sdk
包简介
Official PHP SDK for Invezgo API - Data Saham Indonesia
README 文档
README
Official PHP SDK for Invezgo API - Data Saham Indonesia
Installation
Install via Composer:
composer require invezgo/invezgo-php-sdk
Requirements
- PHP 7.4 or higher
- Guzzle HTTP Client 6.0 or higher
Getting Started
Basic Usage
<?php require 'vendor/autoload.php'; use Invezgo\InvezgoClient; // Initialize the client with your API key $client = new InvezgoClient('your-api-key-here'); // Get list of stocks $stocks = $client->analysis()->getStockList(); print_r($stocks); // Get company information $info = $client->analysis()->information('BBCA'); print_r($info);
Authentication
You need an API key to use this SDK. Get your API key from Invezgo API Settings.
Note: You must have an active subscription package to use the API.
Usage Examples
Analysis Service - Data Saham Indonesia
List Endpoints
// Get list of all stocks $stocks = $client->analysis()->getStockList(); // Get list of all brokers $brokers = $client->analysis()->getBrokerList(); // Get list of all indexes $indexes = $client->analysis()->getIndexList();
Company Information
// Get company information $info = $client->analysis()->information('BBCA');
Top Gainer & Loser
// Get top gainer and loser for a specific date $topChange = $client->analysis()->topChange('2024-12-30');
Top Foreign Flow
// Get top foreign accumulation and distribution $topForeign = $client->analysis()->topForeign('2024-12-30');
Top BDM Flow
// Get top bandarmologi accumulation and distribution $topAccumulation = $client->analysis()->topAccumulation('2024-12-30');
Top Ritel Flow
// Get top retail accumulation and distribution $topRitel = $client->analysis()->topRitel('2024-12-30');
Stock Charts
// Get stock chart (OHLCV data) $chart = $client->analysis()->getAdvanceChart('BBCA', '2024-12-01', '2024-12-30'); // Get index chart $indexChart = $client->analysis()->getIndexChart('COMPOSITE', '2024-12-01', '2024-12-30'); // Get indicator chart (bdm, foreign, ritel, ratio) $indicatorChart = $client->analysis()->getIndicatorChart('BBCA', 'bdm', '2024-12-01', '2024-12-30');
Intraday Data
// Get intraday chart $intraday = $client->analysis()->getIntradayChart('BBCA', 'RG'); // Get intraday data $intradayData = $client->analysis()->getIntradayData('BBCA', 'RG'); // Get intraday index data $intradayIndex = $client->analysis()->getIntradayIndex('COMPOSITE', 'RG'); // Get order book $orderBook = $client->analysis()->getOrderBook('BBCA', 'RG');
Sector Analysis
// Sector stalker - track sector/index movement $sectorStalker = $client->analysis()->sectorStalker('2024-12-01', '2024-12-30', 'COMPOSITE'); // Sector rotation chart $sectorRotation = $client->analysis()->sectorRotation('2024-12-01', '2024-12-30', 'COMPOSITE');
Broker Analysis
// Broker stalker - track broker activity on specific stock $brokerStalker = $client->analysis()->brokerStalker('AG', 'BBCA', '2024-12-01', '2024-12-30', 'all', 'RG', 'value'); // Broker stalker list - get all stocks traded by a broker $brokerStalkerList = $client->analysis()->brokerStalkerList('AG', '2024-12-01', '2024-12-30', 'all', 'value', 'RG'); // Broker summary per stock $summaryStock = $client->analysis()->summaryStock('BBCA', '2024-12-01', '2024-12-30', 'all', 'RG'); // Broker summary per broker $summaryBroker = $client->analysis()->summaryBroker('AG', '2024-12-01', '2024-12-30', 'all', 'RG'); // Broker summary chart for stock $summaryStockChart = $client->analysis()->summaryStockChart('BBCA', '2024-12-01', '2024-12-30', 'volume', 'RG'); // Broker summary chart for broker $summaryBrokerChart = $client->analysis()->summaryBrokerChart('AG', '2024-12-01', '2024-12-30', 'volume', 'RG');
Inventory Charts
// Inventory chart for stock $inventoryStock = $client->analysis()->inventoryStockChart('BBCA', '2024-12-01', '2024-12-30', 'val', 'all', 5, 'RG'); // Inventory chart for broker $inventoryBroker = $client->analysis()->inventoryBrokerChart('AG', '2024-12-01', '2024-12-30', 'val', 'all', 5, 'RG');
Momentum & Realtime Analysis
// Momentum chart $momentum = $client->analysis()->momentumChart('BBCA', '2024-12-30', 60, 'value'); // Intraday inventory chart $intradayInventory = $client->analysis()->intradayInventoryChart('BBCA', '2024-12-30', 60, 'value', 10, 'ALL', 'ALL', 'RG'); // Sankey chart (crossing visualization) $sankey = $client->analysis()->sankeyChart('BBCA', '2024-12-30', 'value', 'ALL', 'ALL', 'RG'); // Price table $priceTable = $client->analysis()->priceTable('BBCA', '2024-12-30'); // Time table $timeTable = $client->analysis()->timeTable('BBCA', '2024-12-30', 60);
Price History
// Price diary (daily price changes) $priceDiary = $client->analysis()->priceDiary('BBCA'); // Price seasonality (monthly price changes) $priceSeasonality = $client->analysis()->priceSeasonality('BBCA', 12);
Shareholder Data
// Shareholder composition $shareholder = $client->analysis()->shareholder('BBCA'); // Shareholder detail (5%) $shareholderDetail = $client->analysis()->shareholderDetail('BBCA', 'SHAREHOLDER NAME'); // Shareholder detail one (1%) $shareholderDetailOne = $client->analysis()->shareholderDetailOne('BBCA', 'SHAREHOLDER NAME'); // Shareholder number $shareholderNumber = $client->analysis()->shareholderNumber('BBCA'); // KSEI shareholder data $ksei = $client->analysis()->shareholderKSEI('BBCA', 6); // Shareholder relation graph $shareholderRelation = $client->analysis()->shareholderRelation('BBCA', null, 3);
Insider Trading
// Shareholder above 5% $shareholderAbove = $client->analysis()->shareholderAbove('2024-12-01', '2024-12-30', 1, 10, 'BBCA'); // Shareholder above 5% chart $shareholderAboveChart = $client->analysis()->shareholderAboveChart('BBCA', 'SHAREHOLDER NAME'); // Shareholder one (1%) $shareholderOne = $client->analysis()->shareholderOne('2024-12-01', '2024-12-30', 1, 10, 'BBCA'); // Shareholder one chart (1%) $shareholderOneChart = $client->analysis()->shareholderOneChart('BBCA', 'SHAREHOLDER NAME'); // Insider trading data $insider = $client->analysis()->insider('2024-12-01', '2024-12-30', 1, 10, null, 'BBCA'); // Insider chart $insiderChart = $client->analysis()->insiderChart('BBCA', 'SHAREHOLDER NAME');
Financial Statements
// Financial statement (BS = Balance Sheet, IS = Income Statement, CF = Cash Flow) // Period: FY (Annual), Q (Quarterly), Q1-Q4 (Specific Quarter) $financial = $client->analysis()->financialStatement('BBCA', 'BS', 'Q', 10); // Financial statement chart $financialChart = $client->analysis()->financialStatementChart('BBCA', 'BS', 'Q', 'ACCOUNT_ID', 10); // Key statistics $keystat = $client->analysis()->keystat('BBCA', 'Q', 10); // Key statistics chart $keystatChart = $client->analysis()->keystatChart('BBCA', 'Q', 'ROE', 10);
Corporate Action Calendar
// Get corporate action calendar $calendar = $client->analysis()->calendar(); // Filter by stock code $calendarByStock = $client->analysis()->calendar('BBCA'); // Filter by type (IPO, PUBLIC_EXPOSE, REVERSE, RIGHT, RUPS_RESULT, RUPS_SCHEDULE, SPLIT, WARRANT, BONUS, CONVERTION, DIVIDEND) $calendarByType = $client->analysis()->calendar(null, 'DIVIDEND', 1, 20);
Watchlists Service - Personal
// Get watchlist groups $groups = $client->watchlists()->listGroupWatchlist(); // Get watchlists by group $watchlists = $client->watchlists()->listWatchlist('group-id'); // Add to watchlist $result = $client->watchlists()->addWatchlist([ 'stock_code' => 'BBCA', 'group_id' => 'group-id', ]); // Update watchlist $result = $client->watchlists()->updateWatchlist('watchlist-id', [ 'stock_code' => 'BBCA', ]); // Update watchlist note $result = $client->watchlists()->updateNoteWatchlist('watchlist-id', [ 'note' => 'My note', ]); // Delete watchlist $result = $client->watchlists()->deleteWatchlists(['ids' => ['id1', 'id2']]); // Add watchlist group $result = $client->watchlists()->addGroupWatchlist([ 'name' => 'My Watchlist', ]);
Journals Service - Personal
// List journal transactions $journals = $client->journals()->listTransactions(); // Add journal transaction $result = $client->journals()->addTransaction([ 'stock_code' => 'BBCA', 'transaction_type' => 'buy', 'price' => 10000, 'quantity' => 100, ]); // Get transactions summary $summary = $client->journals()->getTransactionsSummary(); // Extract journal from file $result = $client->journals()->extractInformation([ 'file' => 'file-content', ]); // Delete journals $result = $client->journals()->deleteWatchlists(['ids' => ['id1', 'id2']]); // Update journal note $result = $client->journals()->updateNoteWatchlist('journal-id', [ 'note' => 'My note', ]);
Portfolios Service - Personal
// List portfolios $portfolios = $client->portfolios()->listPortfolio(); // Get portfolio summary $summary = $client->portfolios()->portfolioSummary();
Trades Service - Personal
// List realized transactions $trades = $client->trades()->listTransactions(); // Get transactions summary $summary = $client->trades()->getTransactionsSummary(); // Get summary chart $chart = $client->trades()->getSummaryChart(); // Delete trades $result = $client->trades()->deleteWatchlists(['ids' => ['id1', 'id2']]); // Update trade note $result = $client->trades()->updateNoteWatchlist('trade-id', [ 'note' => 'My note', ]);
AI Service - AI Chat
// AI analysis for KSEI shareholder $analysis = $client->ai()->shareholderKSEI('BBCA'); // AI analysis for inventory chart stock $analysis = $client->ai()->inventoryStockChart('BBCA', '2024-12-01', '2024-12-30', 'val', 'all', '5', 'RG', ''); // AI analysis for news $news = $client->ai()->news('BBCA'); // AI analysis for broker summary $analysis = $client->ai()->brokerSummary('BBCA', '2024-12-01', '2024-12-30', 'all', 'RG'); // AI analysis for insider shareholder $analysis = $client->ai()->insider('BBCA', 'NAME', '2024-12-01', '2024-12-30', '1', '10'); // AI analysis for shareholder above 5% $analysis = $client->ai()->shareholderAbove('BBCA', 'BROKER', 'NAME', '2024-12-01', '2024-12-30', '1', '10'); // AI analysis for intraday inventory $analysis = $client->ai()->intradayInventory('BBCA', 60, 'value', 10, 'ALL', 'ALL', '', 'RG'); // AI analysis for sankey chart $analysis = $client->ai()->sankeyChart('BBCA', 'value', 'ALL', 'ALL', 'RG'); // AI analysis for shareholder table $analysis = $client->ai()->shareholderTable('BBCA'); // AI analysis for financial statement $analysis = $client->ai()->financialStatement('BBCA', 'BS', 'Q', '10'); // AI analysis for key statistics $analysis = $client->ai()->keystat('BBCA', 'Q', '10');
Search Service
// Search stock or user $results = $client->search()->search('BBCA'); // Search stock only $stocks = $client->search()->searchStock('BCA', 'cursor'); // Search user only $users = $client->search()->searchUser('username', 'cursor');
Profile Service
// Get user profile $profile = $client->profile()->userDetails('username'); // Get user posts $posts = $client->profile()->userPosts('username', '1', '10'); // Get user posts by category $posts = $client->profile()->categoryPosts('username', 'category', '1', '10'); // Get user watchlist $watchlist = $client->profile()->listWatchlist('username'); // Get user followers $followers = $client->profile()->followUser('username'); // Get user following $following = $client->profile()->getFollowingUser('username'); // Get user memberships $memberships = $client->profile()->getMemberships('username');
Posts Service
// Get all posts $posts = $client->posts()->getPosts(); // Get posts by category $posts = $client->posts()->getCategoryPosts('category'); // Get stock posts $posts = $client->posts()->getStockPosts('BBCA'); // Get stock posts by category $posts = $client->posts()->getStockCategoryPosts('BBCA', 'category'); // Get post detail $post = $client->posts()->getPostById('post-id'); // Get post comments $comments = $client->posts()->getComment('post-id'); // Get liked posts $liked = $client->posts()->getLike(); // Get favorite posts $favorites = $client->posts()->getFavorite(); // Get post voters $voters = $client->posts()->getVoters('post-id');
Membership Service
// Get list of memberships $memberships = $client->membership()->getMemberships(); // Add new membership $result = $client->membership()->addMembership([ 'plan_id' => 'plan-id', ]); // Get membership scope $scope = $client->membership()->getScope(); // Get transaction membership list $transactions = $client->membership()->getTransactionMembership(); // Update membership $result = $client->membership()->changeMembership('membership-id', [ 'status' => 'active', ]); // Delete membership $result = $client->membership()->deleteMembership('membership-id');
Screener Service
// Get list of screener presets $presets = $client->screener()->list(); // Save screener preset $result = $client->screener()->save([ 'name' => 'My Screener', 'filters' => [], ]); // Update screener preset $result = $client->screener()->update('screener-id', [ 'name' => 'Updated Screener', ]); // Delete screener preset $result = $client->screener()->delete('screener-id'); // Run screener $results = $client->screener()->screen([ 'formula' => 'prev < close', ]);
Recommendation Service
// Get user recommendations $recommendations = $client->recommendation()->userRecommendations();
Health Service
// Check API status $status = $client->health()->check(); // Check database status $dbStatus = $client->health()->checkDatabase(); // Full check $fullStatus = $client->health()->fullCheck();
Alerts Service - Live Alert
// Get list of alerts $alerts = $client->alerts()->list(); // Create new alert $result = $client->alerts()->create([ 'formula' => 'prev < close', 'name' => 'My Alert', ]); // Test alert formula $result = $client->alerts()->test([ 'formula' => 'prev < close', ]); // Update alert $result = $client->alerts()->update('alert-id', [ 'formula' => 'prev > close', ]); // Delete alert $result = $client->alerts()->delete('alert-id');
Error Handling
The SDK throws specific exceptions for different error scenarios:
use Invezgo\Exception\ApiException; use Invezgo\Exception\AuthenticationException; use Invezgo\Exception\PaymentRequiredException; use Invezgo\Exception\RateLimitException; try { $stocks = $client->analysis()->getStockList(); } catch (AuthenticationException $e) { // API Key tidak valid atau tidak ditemukan (401) echo "Authentication failed: " . $e->getMessage(); } catch (PaymentRequiredException $e) { // Paket berlangganan tidak mencukupi atau API Key sudah expired (402) echo "Payment required: " . $e->getMessage(); } catch (RateLimitException $e) { // Melebihi batas permintaan API (429) echo "Rate limit exceeded: " . $e->getMessage(); } catch (ApiException $e) { // Other API errors echo "API Error: " . $e->getMessage(); }
Laravel Integration
Service Provider (Optional)
Create a service provider to bind the client:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Invezgo\InvezgoClient; class InvezgoServiceProvider extends ServiceProvider { public function register() { $this->app->singleton(InvezgoClient::class, function ($app) { return new InvezgoClient(config('services.invezgo.api_key')); }); } }
Add to config/services.php:
'invezgo' => [ 'api_key' => env('INVEZGO_API_KEY'), ],
Add to .env:
INVEZGO_API_KEY=your-api-key-here
Usage in Laravel
use Invezgo\InvezgoClient; class StockController extends Controller { public function index(InvezgoClient $client) { $stocks = $client->analysis()->getStockList(); return view('stocks.index', compact('stocks')); } }
Available Services
- AnalysisService - Data Saham Indonesia (stocks, charts, financials, shareholders, brokers, sectors, etc.)
- WatchlistsService - Personal watchlist management
- JournalsService - Journal transaction management
- PortfoliosService - Portfolio management
- TradesService - Realized trades management
- AiService - AI-powered analysis
- SearchService - Search stocks and users
- ProfileService - User profile operations
- MembershipService - Membership/subscription management
- PostsService - Posts and content
- RecommendationService - User recommendations
- ScreenerService - Stock screener
- AlertsService - Live alerts for stock conditions
- HealthService - API health checks
Response Format
All methods return arrays containing the API response data. The structure depends on the specific endpoint. Please refer to the Invezgo API Documentation for detailed response structures.
Rate Limiting
The API has rate limits based on your subscription package. When rate limits are exceeded, a RateLimitException is thrown. You should implement retry logic with exponential backoff.
Support
- Website: https://invezgo.com
- Email: admin@invezgo.com
- API Documentation: https://invezgo.com
- API Key Settings: https://invezgo.com/id/setting/api
License
MIT License. See LICENSE file for details.
Changelog
1.0.0
- Initial release
- Full API coverage for Indonesia Stock Data
- All services implemented
- Exception handling
- Laravel integration support
invezgo/sdk 适用场景与选型建议
invezgo/sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「sdk」 「stock」 「laravel」 「indonesia」 「invezgo」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 invezgo/sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 invezgo/sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 invezgo/sdk 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Flexible inventory management for Symfony applications.
Magento 2.x Extension to prevent Out of Stock Children being removed from Used Product Collections.
Pretty line graphs in your console, html or images
A PSR-7 compatible library for making CRUD API endpoints
Simple stock management for Isotope eCommerce
Magento 2.x Extension to prevent Out of Stock Children being removed from Used Product Collections.
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-01