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 1w 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 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

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

2097d 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

[sylius/sylius

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

8.4k5.6M651](/packages/sylius-sylius)[statamic/cms

The Statamic CMS Core Package

4.8k3.2M720](/packages/statamic-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[currency-cloud/client

A PHP library which implements the complete functionality of v2 of the The Currency Cloud API.

17327.2k](/packages/currency-cloud-client)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[mapado/rest-client-sdk

Rest Client SDK for hydra API

1125.9k2](/packages/mapado-rest-client-sdk)

PHPackages © 2026

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