# SurplusLead AI - GovDeals & Surplus Auction Tracker (`automation_studio/govdeals-surplus-auction-scraper`) Actor

Multi-platform government surplus liquidation & auction sniper. Tracks live lots, bids, closing times, and sends instant Discord/Telegram alerts.

- **URL**: https://apify.com/automation\_studio/govdeals-surplus-auction-scraper.md
- **Developed by:** [Automation Studio](https://apify.com/automation_studio) (community)
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 government surplus auction lots

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## 🏛️ SurplusLead AI — GovDeals, GSA & Public Surplus Auction Tracker

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com)
[![Pay-Per-Event](https://img.shields.io/badge/Pricing-Pay--Per--Event-green?style=flat-square)](https://apify.com)
[![Platforms](https://img.shields.io/badge/Surplus-GSA%20%7C%20GovDeals%20%7C%20Public%20Surplus-blue?style=flat-square)](#)

> **The ultimate multi-platform government liquidation auction tracker & deal sniper. Monitor live municipal, state, and federal auctions across GSA Auctions, GovDeals, and Public Surplus in real-time — with instant Discord & Telegram deal alert cards.**

***

### ⚡ What Does SurplusLead AI Do?

**SurplusLead AI** is an automated intelligence engine built specifically for automotive flippers, heavy machinery brokers, IT refurbishers, and liquidation resellers.

Instead of spending hours manually refreshing clunky government portals across dozens of counties, **SurplusLead AI** queries live government auction systems in seconds:

1. **Unified Multi-Platform Coverage**: Aggregates active lots across **GSA Auctions (Federal)**, **GovDeals (Municipal)**, and **Public Surplus (County & School Districts)**.
2. **Instant Snipe Webhooks**: Sends rich visual deal alert cards directly to your private **Discord server or Telegram** with lot photos, current bid, time left, and direct bid links.
3. **Arbitrage Deal Scoring**: Automatically classifies deals as `HIGH_MARGIN_FLIP`, `SNIPE_ALERT`, or `GOOD_VALUE` based on reserve status, bid counts, and closing deadlines.
4. **Snipe Timing Triggers**: Filter by `Ending Soon (< 24 Hours)` or `Closing Window (< 6 Hours)` to catch underpriced lots other bidders missed.
5. **Reserve Transparency**: Filter for **Reserve Met Only** lots so you know with 100% certainty the item will sell.
6. **Location & State Filtering**: Restrict searches to your home state (e.g. `CA`, `TX`, `FL`, `NY`) or radius for easy local trailer pickup.

***

### 💰 The Arbitrage Opportunity (Real Government Surplus Numbers)

| Category | Typical Gov Surplus Winning Bid | Resale Market Value (Craigslist / eBay / FB) | **Net Flip Profit** |
|---|---|---|---|
| **Police Cruisers (Ford Explorer / Dodge Charger)** | $1,800 – $3,200 | $6,000 – $9,500 | **+$4,200 – $6,300** 🚀 |
| **City Work Trucks (Ford F-250 / Chevy 2500)** | $2,500 – $5,000 | $8,500 – $14,000 | **+$6,000 – $9,000** 🚀 |
| **Heavy Equipment (Caterpillar Skid Steer / Forklift)** | $4,500 – $8,000 | $12,000 – $22,000 | **+$7,500 – $14,000** 🚀 |
| **School District Tech (Pallet of 25x Apple MacBooks)** | $2,500 – $4,000 | $7,500 – $11,000 | **+$5,000 – $7,000** 🚀 |
| **Police Seizures (Tools / Jewelry / Confiscations)** | $400 – $900 | $1,800 – $3,500 | **+$1,400 – $2,600** 🚀 |

***

### 🚀 How It Works

```mermaid
graph TD
    A[Search Keyword / Category / State] --> B[SurplusLead Intelligence Engine]
    B --> C[GSA Auctions Federal API]
    B --> D[GovDeals Municipal Systems]
    B --> E[Public Surplus County Systems]
    C --> F[Deal Scoring & Arbitrage Classifier]
    D --> F
    E --> F
    F --> G{Alert Criteria Met?}
    G -->|Yes| H[Instant Discord Webhook / Telegram Ping]
    G -->|No| I[Clean Structured Dataset]
    H --> I
    I --> J[Apify Dataset: JSON / CSV / Excel]
```

***

### 📥 Input Configuration

| Parameter | Type | Default | Description |
|---|---|---|---|
| `searchKeyword` | `string` | `"truck"` | Search term across item names, descriptions, and agencies. |
| `auctionPlatform` | `select` | `"all"` | `All Government Auctions`, `GSA Federal`, or `Municipal / County Surplus`. |
| `category` | `select` | `"all"` | Filter by `Vehicles & Fleet`, `Heavy Machinery`, `Computers & Electronics`, or `Police Seizures & Jewelry`. |
| `stateFilter` | `string` | `""` | Optional 2-letter state code (e.g. `'CA'`, `'TX'`, `'FL'`). Blank for nationwide. |
| `maxCurrentBid` | `integer` | `0` | Max current bid ceiling in USD (e.g. `5000`). `0` = no ceiling. |
| `onlyEndingSoon` | `boolean` | `false` | Only return auctions ending in < 24 hours (snipe opportunities). |
| `onlyReserveMet` | `boolean` | `false` | Only return lots where reserve is met (guaranteed to sell). |
| `maxLots` | `integer` | `50` | Maximum matching lots to extract (5 to 500). |
| `discordWebhookUrl` | `string` | `""` | Optional Discord Webhook URL for instant mobile/desktop deal alerts. |
| `telegramBotToken` | `string` | `""` | Optional Telegram Bot token for mobile alerts. |
| `telegramChatId` | `string` | `""` | Optional Telegram chat or channel ID. |
| `proxyConfiguration` | `proxy` | `{"useApifyProxy": true}` | Pre-configured Apify Proxy for fast, unblocked extraction. |

***

### 📤 Output Dataset Example

```json
{
  "lotId": "GSA-4-1-QSC-I-26-463-001",
  "title": "Hyster Commercial Forklift 5000lb Capacity",
  "platform": "GSA Auctions (Federal)",
  "category": "heavy_equipment",
  "currentBid": 2510.0,
  "bidIncrement": 10.0,
  "reserveMet": true,
  "biddersCount": 8,
  "closingDate": "2026-09-09",
  "timeRemainingHours": 4.5,
  "locationCity": "Davis",
  "locationState": "CA",
  "locationZip": "95616",
  "agencyName": "National Institute of Food and Agriculture",
  "auctionUrl": "https://www.gsaauctions.gov/auctions/preview/374892",
  "imageUrl": "https://www.ppms.gov/gw/auction/ppms/api/v1/auction/image/41QSCI26463001.jpg",
  "dealScore": "HIGH_MARGIN_FLIP",
  "arbitrageTags": [
    "Reserve Met (Will Sell)",
    "Ending Soon (< 24h)",
    "🚨 Snipe Window (< 6h)",
    "🔥 Active Bidding (8 Bidders)",
    "Budget Fleet Pick"
  ],
  "contactOfficer": "SINGCHENG (4155223022)",
  "scrapedAt": "2026-09-09T10:55:00Z"
}
```

***

### 🔔 Discord Webhook Card Preview

When an underpriced deal matches your criteria, you instantly receive a formatted embed in your Discord channel:

```text
┌───────────────────────────────────────────────────────────────┐
│ 🏛️ SurplusLead AI • NEW LIQUIDATION DEAL FOUND                 │
│                                                               │
│ [ 2019 Dodge Charger Police Pursuit AWD (Low Mileage) ]       │
│                                                               │
│ 💰 Current Bid: $1,850.00     ⏳ Time Left: 3h 15m            │
│ 🏷️ Reserve: MET (Will Sell!)   🔨 Bids: 14 bidders             │
│ 📍 Location: Austin, TX        🏛️ Source: GSA Federal Surplus │
│ 🎯 Deal Score: HIGH_MARGIN_FLIP                               │
│                                                               │
│ [ 🖼️ High-Res Vehicle / Lot Photo Embedded Here ]              │
│                                                               │
│ 👉 [Click Here to View & Place Bid on Auction]               │
│                                                               │
│ SurplusLead AI • Government Liquidation & Auction Sniper      │
└───────────────────────────────────────────────────────────────┘
```

***

### 💰 Pricing & Economics

- **Pricing Model**: Pay-Per-Event (PPE)
- **Platform Usage**: Paid by user (`isPPEPlatformUsagePaidByUser: true`)
  - `apify-actor-start`: **$0.002** (One-time run fee)
  - `apify-default-dataset-item`: **$0.003** ($3.00 per 1,000 verified auction lots)
- **Scheduled Monitoring**:
  - Run this Actor on an **Apify Schedule (every 1 hour or every 30 minutes)** to receive automated 24/7 deal alerts whenever hot government surplus lots appear!

# Actor input Schema

## `searchKeyword` (type: `string`):

Keywords to search for (e.g., 'truck', 'forklift', 'macbook', 'generator', 'chevy', 'dodge', 'trailer').

## `auctionPlatform` (type: `string`):

Select specific government auction source or aggregate across all platforms simultaneously.

## `category` (type: `string`):

Filter by specific surplus category.

## `stateFilter` (type: `string`):

Optional 2-letter US state abbreviation (e.g. 'CA', 'TX', 'FL', 'NY'). Leave blank for all nationwide auctions.

## `maxCurrentBid` (type: `integer`):

Maximum current bid ceiling (e.g. 5000). Set to 0 to include auctions at any price.

## `onlyEndingSoon` (type: `boolean`):

Only return auctions closing within the next 24 hours (prime snipe opportunities).

## `onlyReserveMet` (type: `boolean`):

Only return lots where the seller reserve has been met or that have 'No Reserve'.

## `maxLots` (type: `integer`):

Maximum number of matching auction lots to extract into the dataset.

## `discordWebhookUrl` (type: `string`):

Paste your Discord Channel Webhook URL to receive instant visual alert cards with lot photos, current bid, and direct bid link.

## `telegramBotToken` (type: `string`):

Optional Telegram Bot Token from @BotFather for mobile deal alerts.

## `telegramChatId` (type: `string`):

Optional Telegram Chat or Channel ID where alerts should be sent.

## `proxyConfiguration` (type: `object`):

Direct high-speed connection is used by default for official US Government auction databases. Apify proxy is optional for municipal portals.

## Actor input object example

```json
{
  "searchKeyword": "truck",
  "auctionPlatform": "all",
  "category": "all",
  "maxCurrentBid": 0,
  "onlyEndingSoon": false,
  "onlyReserveMet": false,
  "maxLots": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Dataset containing verified government surplus lots, high bids, closing times, and photos

# 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 = {
    "searchKeyword": "truck"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation_studio/govdeals-surplus-auction-scraper").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 = { "searchKeyword": "truck" }

# Run the Actor and wait for it to finish
run = client.actor("automation_studio/govdeals-surplus-auction-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchKeyword": "truck"
}' |
apify call automation_studio/govdeals-surplus-auction-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation_studio/govdeals-surplus-auction-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/M93TEVxI3VSlvEnmg/builds/Dd3kNixnzZOEIez4g/openapi.json
