PHPackages                             elbucho/finviz-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. elbucho/finviz-api

ActiveLibrary[API Development](/categories/api)

elbucho/finviz-api
==================

Unofficial PHP SDK to access the Finviz Stock Screener

1.0.0(5y ago)252GPL-3.0-or-laterPHPPHP &gt;=7.2.5

Since Aug 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/elbucho/finviz-api)[ Packagist](https://packagist.org/packages/elbucho/finviz-api)[ RSS](/packages/elbucho-finviz-api/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

finviz-api
==========

[](#finviz-api)

This project provides a programmable interface to the FinViz stock screener website ().
You can provide any number of filters and search the screener, and it will return an array of symbols that match your criteria.

\###Setup

You can create an instance of this object by including the following code:

```
$screener = new Elbucho\FinvizApi\Screener();

```

Once you have instantiated it, you can provide any number of filters:

### Filters

[](#filters)

The available filter categories and options are listed in the config/filters.yml file. Any of the filters provided can be used:

```
$screener
    ->addFilter('float', 'under_50m')
    ->addFilter('price', 'over_5');

```

### Results

[](#results)

Once you have provided the required filters, you can use the search() command to populate an internal list of results. To display these, use "getResults()":

```
$screener->search();

foreach ($screener->getResults() as $result) {
    var_dump($result);
}

```

This will provide a multidimensional array containing the following information:

```
[
    'ticker'      => Stock ticker symbol,
    'company'     => Company name,
    'sector'      => Sector (eg. Technology, Healthcare, etc),
    'industry'    => Industry within sector (eg. REIT - Industrial),
    'market_cap'  => Total market cap (int),
    'price'       => Current price in USD,
    'change'      => Percentage change from previously reported price (+/-),
    'volume'      => Most recent volume of trades
],
...

```

### Pagination

[](#pagination)

You can determine whether you are on the first page with:

```
$screener->onFirstPage();

```

Similarly, you can determine whether you are on the last page with:

```
$screener->onLastPage();

```

You can advance to the next page results with:

```
$screener->loadNextPage();

```

And you can decrement your page number with:

```
$screener->loadPreviousPage();

```

Here is a sample application that loops through all of the results of a search for stocks that are on the NYSE, that have a float of at least 20m shares, that have a price below $5, and that show a recent trade volume at least 3 times higher than its recent average:

```
$screener = new Elbucho\FinvizApi\Screener();
$screener
    ->addFilter('exchange', 'nyse')
    ->addFilter('float', 'under_20m')
    ->addFilter('price', 'under_5')
    ->addFilter('relative_volume', 'over_3')
    ->search();

while (true) {
    $results = $screener->getResults();

    foreach ($results as $result) {
        printf(
            "%s:\tCap: %s\tPrice: %s\tChange: %s\tVolume: %s\n",
            $result['ticker'],
            $result['market_cap'],
            $result['price'],
            $result['change'],
            $result['volume']
        );
    }

    if ($screener->onLastPage()) {
        break;
    }

    $screener->loadNextPage();
}

```

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

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

2143d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/93a0e79682cd43644eb1812ae1706fb8844b1b595fa571bc5f8854af2a670d1a?d=identicon)[elbucho](/maintainers/elbucho)

---

Top Contributors

[![elbucho](https://avatars.githubusercontent.com/u/4545458?v=4)](https://github.com/elbucho "elbucho (3 commits)")

### Embed Badge

![Health badge](/badges/elbucho-finviz-api/health.svg)

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M986](/packages/statamic-cms)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M738](/packages/sylius-sylius)[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21866.0M1.7k](/packages/drupal-core)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M47](/packages/tencentcloud-tencentcloud-sdk-php)

PHPackages © 2026

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