# FDA Food Facility Inspector - Free Food Safety API (`ntriqpro/fda-food-facility-inspector`) Actor

Free API for FDA food facility inspections and food safety data. No subscription. Track food recalls, facility audits, compliance issues by state. Government data, pay-per-use.

- **URL**: https://apify.com/ntriqpro/fda-food-facility-inspector.md
- **Developed by:** [daehwan kim](https://apify.com/ntriqpro) (community)
- **Categories:** AI, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$100.00 / 1,000 charged when stock market scan is successfully coms

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

Get real-time stock quotes, technical analysis signals, full market overviews, and symbol search from a single actor — with no brokerage account and no API key required. Stock Market Scanner is built for traders, researchers, and data engineers who need structured US equity data on demand, not a fragile scraper or an expensive data subscription.

### What does Stock Market Scanner do?

Stock Market Scanner runs four independent scan modes against live financial data from Yahoo Finance, Financial Modeling Prep, and the CNN Fear & Greed Index. In a single run you can fetch a real-time price quote with fundamentals, generate a complete technical analysis report with buy/sell signals, pull a market-wide snapshot with index levels and sentiment, or search for a company by name to retrieve its ticker and sector.

All four modes return consistent, structured JSON that connects directly to downstream tools — whether that is an Apify dataset, a webhook to your trading dashboard, or a scheduled pipeline feeding a spreadsheet. Multiple symbols can be processed in one run by passing a comma-separated list, making batch monitoring practical without repeated manual triggers.

### Key features

- Four modes in one actor: stock quote, technical analysis, market overview, stock search
- Real-time prices with change, volume, market cap, P/E ratio, dividend yield, and 52-week range
- Technical analysis with RSI(14), MACD(12,26,9), Bollinger Bands(20,2), SMA/EMA(20,50,200)
- Golden Cross and Death Cross detection with actionable signals: STRONG BUY / BUY / HOLD / SELL / STRONG SELL
- Market overview with S&P 500, NASDAQ, DOW, Russell 2000, VIX, top gainers, top losers, and CNN Fear & Greed Index
- Batch processing — pass comma-separated symbols to analyze multiple stocks in one run
- Covers all US stocks, ETFs, and major global indices
- No API key required

### Use cases

- **Day traders**: Pull real-time quotes and technical signals before market open to plan entries and exits without logging into a brokerage terminal
- **Swing traders**: Run technical analysis on a watchlist of tickers to identify RSI oversold conditions, MACD crossovers, and moving average setups
- **Long-term investors**: Use the market overview mode to assess overall sentiment and identify sectors outperforming the broader index before deploying capital
- **Quantitative researchers**: Collect structured price and indicator data at scale to backtest strategies or train machine learning models
- **Portfolio managers**: Monitor multiple positions simultaneously with comma-separated symbol input and automated scheduled runs

### How to use Stock Market Scanner

1. **Configure input** — Choose a mode, enter one or more stock symbols (or a search query), and optionally set any additional parameters
2. **Run the actor** — Click "Start" on the Apify platform or trigger via the REST API
3. **Get structured results** — Download JSON from the dataset tab, integrate via the Apify API, or connect to a webhook for automated workflows

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `mode` | string | Yes | `stock_quote` | Scan mode: `stock_quote`, `technical_analysis`, `market_overview`, or `stock_search` |
| `symbols` | string | No | `AAPL` | Comma-separated ticker symbols (e.g., `AAPL,MSFT,GOOGL`). Used in `stock_quote` and `technical_analysis` modes. |
| `query` | string | No | `""` | Company name to search for. Used in `stock_search` mode only. |

#### Supported symbol types

- US stocks: `AAPL`, `TSLA`, `MSFT`, `GOOGL`, `AMZN`, `META`, `NVDA`, and thousands more
- ETFs: `SPY`, `QQQ`, `VTI`, `VOO`, `IWM`
- Global indices: `^GSPC` (S&P 500), `^IXIC` (NASDAQ), `^DJI` (DOW), `^RUT` (Russell 2000)

### Output example

```json
{
  "mode": "technical_analysis",
  "symbol": "AAPL",
  "name": "Apple Inc.",
  "price": 198.45,
  "change": 2.15,
  "changePercent": 1.09,
  "signal": "BUY",
  "score": 4,
  "indicators": {
    "rsi": 42.3,
    "macd": {
      "macd": 1.23,
      "signal": 0.89,
      "histogram": 0.34,
      "trending": "Bullish Rising"
    },
    "bollingerBands": {
      "upper": 205.12,
      "middle": 195.30,
      "lower": 185.48,
      "position": 66.2
    },
    "sma": { "sma20": 195.30, "sma50": 192.15, "sma200": 185.60 }
  },
  "signals": [
    "RSI neutral",
    "MACD bullish rising",
    "Above all major MAs (bullish)",
    "EMA bullish stack"
  ]
}
````

### Cost of usage

Pay-per-event at **$0.05 per scan**.

| Usage | Cost |
|-------|------|
| 1 scan | $0.05 |
| 100 scans | $5.00 |
| 1,000 scans | $50.00 |

New Apify users get **$5 in free credits** — enough for 100 scans.

### Data sources

- [Yahoo Finance](https://finance.yahoo.com) — Real-time quotes, historical price data, company fundamentals, and 52-week range (free, no API key)
- [Financial Modeling Prep](https://financialmodelingprep.com) — Top market gainers and losers via free demo tier
- [CNN Fear & Greed Index](https://www.cnn.com/markets/fear-and-greed) — Public market sentiment endpoint

### Related actors

- [Finance MCP Server](https://apify.com/ntriqpro/finance-mcp-server) — Connect stock data directly to Claude Desktop or any MCP-compatible AI assistant for natural-language analysis
- [Government Data Tracker](https://apify.com/ntriqpro/government-data-tracker) — Monitor regulatory filings and government announcements that move markets
- [Crypto Token Scanner](https://apify.com/ntriqpro/crypto-token-scanner) — Extend your coverage beyond equities with real-time crypto price and sentiment data

### FAQ

#### Is an API key required?

No. Stock Market Scanner uses Yahoo Finance's public endpoints, the free demo tier of Financial Modeling Prep, and the public CNN Fear & Greed Index feed. No registration or credentials are needed.

#### How real-time is the price data?

Yahoo Finance public data is typically delayed by 15 minutes during market hours, consistent with standard public data licensing. For pre-market or after-hours quotes, the actor returns the most recent available price from the Yahoo Finance feed.

#### Can I analyze multiple stocks in one run?

Yes. Pass a comma-separated list of symbols in the `symbols` field (e.g., `AAPL,MSFT,TSLA,NVDA`). The actor processes each symbol and returns an array of results. There is no hard limit on the number of symbols, but very large lists may increase run time.

#### What does the technical analysis signal score mean?

The score is an integer from 0 to 7 that counts how many individual indicators point bullish. The final signal label (STRONG BUY through STRONG SELL) is derived from this score combined with momentum direction across RSI, MACD, and moving averages.

### Limitations

- Price data is sourced from public Yahoo Finance endpoints and is subject to their standard 15-minute delay during market hours
- The `market_overview` mode uses the Financial Modeling Prep free demo tier, which may have lower rate limits during peak periods
- Options data, earnings calendars, and analyst price targets are not included in the current output
- Non-US exchanges and OTC markets are not fully supported; symbol availability depends on Yahoo Finance coverage
- Technical analysis indicators are calculated from Yahoo Finance historical data and may differ slightly from broker-provided values due to differences in data normalization

# Actor input Schema

## `state` (type: `string`):

US state to search for FDA food enforcement actions (e.g., CA, NY, TX)

## `limit` (type: `integer`):

Maximum number of results to return (default: 10)

## Actor input object example

```json
{
  "state": "CA",
  "limit": 10
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "state": "CA",
    "limit": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("ntriqpro/fda-food-facility-inspector").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "state": "CA",
    "limit": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("ntriqpro/fda-food-facility-inspector").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "state": "CA",
  "limit": 10
}' |
apify call ntriqpro/fda-food-facility-inspector --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ntriqpro/fda-food-facility-inspector",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FDA Food Facility Inspector - Free Food Safety API",
        "description": "Free API for FDA food facility inspections and food safety data. No subscription. Track food recalls, facility audits, compliance issues by state. Government data, pay-per-use.",
        "version": "1.0",
        "x-build-id": "kPLfPYBXK1QgYEeam"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ntriqpro~fda-food-facility-inspector/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ntriqpro-fda-food-facility-inspector",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ntriqpro~fda-food-facility-inspector/runs": {
            "post": {
                "operationId": "runs-sync-ntriqpro-fda-food-facility-inspector",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ntriqpro~fda-food-facility-inspector/run-sync": {
            "post": {
                "operationId": "run-sync-ntriqpro-fda-food-facility-inspector",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "state"
                ],
                "properties": {
                    "state": {
                        "title": "US State",
                        "type": "string",
                        "description": "US state to search for FDA food enforcement actions (e.g., CA, NY, TX)"
                    },
                    "limit": {
                        "title": "Result Limit",
                        "type": "integer",
                        "description": "Maximum number of results to return (default: 10)"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
