# SLED Bids (`subrosa/sled-bids`) Actor

Returns open state, local and education government solicitations from public US procurement portals (Florida, Louisiana, Delaware), fetched logged out, with no contact officer data.

- **URL**: https://apify.com/subrosa/sled-bids.md
- **Developed by:** [Sub Rosa](https://apify.com/subrosa) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## SLED Bids

Returns open solicitations from three public US government procurement portals, one state each: Florida's Vendor Bid System on MyFloridaMarketPlace (state agencies, water management districts and a few special districts), the Louisiana Procurement and Contract Network, LaPAC (the central Office of State Procurement, state departments, universities, community and technical colleges, parishes, cities, school boards and authorities), and Delaware's Bid Solicitation Directory (state departments, school districts, the state university and community college, the National Guard). Each item carries the portal, the contracting organization, the state, the title, the agency's own solicitation number, the portal's classification of the posting, the posted and closing dates (with UTC timestamps where the portal gives a time), a status, a short description where the portal publishes one, and a link to the solicitation documents. The data comes from the portals' public listing pages and the JSON endpoints those pages call, fetched logged out, as they stand at the moment of the run. A default run returns 150 items in about 65 seconds across 56 requests. The `result` price is $0.003 per item, with a $0.02 charge per run.

No contact officer's name, email address or phone number is collected. Florida's detail record carries a response contact block (name, address, phone, email) and Delaware's list carries a contact email for every bid; both are read and dropped before output, and the README's Legal section says exactly what is dropped where. The Florida description passes through the house free-text filter sentence by sentence; it is a filter, not a guarantee, and the Limits section says what it catches.

### Who uses it

- A sales team at a contractor or software vendor tracking public-sector opportunities in the Southeast: runs the default input each morning, keeps `state`, `agencyName`, `title`, `category`, `closesDate` and `url`, and flags new postings in its categories before the response window narrows.
- A bid-matching service or procurement data product: pulls all three portals with a large `maxItems`, keys on `id` to detect new and disappeared postings run over run, and uses `documentsUrl` to fetch the solicitation documents for the ones its customers follow.
- A researcher studying procurement lead times: uses `postedDate` and `closesDate` (and `postedAt`, `closesAt` where the portal gives times) across `portal` and `agencyName` to compare how long agencies leave solicitations open, without touching any officer's identity.

### Sample output

One real item from a real run, as JSON:

```json
{
    "id": "florida-vbs:14026",
    "url": "https://vendor.myfloridamarketplace.com/search/bids/detail/14026",
    "sourceUrl": "https://vendor.myfloridamarketplace.com/mfmp/pub/search/bids/detail?id=14026",
    "scrapedAt": "2026-09-26T12:56:27.107Z",
    "portal": "florida-vbs",
    "agencyName": "Florida Department of Corrections (FDC)",
    "state": "FL",
    "title": "Statewide Roof Maintenance, Repair, and Replacement Services",
    "solicitationNumber": "ITB-25-007",
    "category": "Invitation to Bid",
    "postedAt": "2025-10-02T19:45:18.000Z",
    "postedDate": "2025-10-02",
    "closesAt": "2026-12-31T22:00:00.000Z",
    "closesDate": "2026-12-31",
    "status": "open",
    "description": "Addendum #004, which revises the Timeline, is attached. Addendum #003, which includes the Department's written answers to the written questions received by the deadline in the ITB Timeline, is attached.",
    "documentsUrl": "https://vendor.myfloridamarketplace.com/mfmp/bids/detail/attachment/download?attachmentId=33279"
}
```

Ten items from the same run, covering all three portals, a Florida grant opportunity and agency decision, a cancelled Louisiana bid, and Delaware school district and transportation bids, are in `sample.json`.

### Data dictionary

Every field is present on every item. Fields the portal does not publish are `null`, never missing and never an empty string.

| Field                | Type           | Meaning                                                                                                                                                                                                                                                                                                                                                               | Example                                                                                     |
| -------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `id`                 | string         | Portal key and the portal's own record id, joined by a colon, unique across portals                                                                                                                                                                                                                                                                                   | `"louisiana-lapac:3000026521"`                                                              |
| `url`                | string         | Canonical public page for the solicitation on its portal                                                                                                                                                                                                                                                                                                              | `"https://mmp.delaware.gov/Bids/Details/9349"`                                              |
| `sourceUrl`          | string         | Page or endpoint the record was extracted from                                                                                                                                                                                                                                                                                                                        | `"https://wwwcfprd.doa.louisiana.gov/osp/lapac/dspBid.cfm?search=department&term=1"`        |
| `scrapedAt`          | string         | Extraction time, ISO 8601, UTC                                                                                                                                                                                                                                                                                                                                        | `"2026-09-26T12:03:19.716Z"`                                                                |
| `portal`             | string         | `florida-vbs`, `louisiana-lapac` or `delaware-bids`                                                                                                                                                                                                                                                                                                                   | `"delaware-bids"`                                                                           |
| `agencyName`         | string or null | The contracting organization as the portal names it. Florida gives the agency's full name; Louisiana groups departments as State, University, Community/Technical College and Non State and this Actor drops the group label and keeps the entity; Delaware gives an acronym which is resolved to the agency's name from the portal's own agency list. Never a person | `"City of New Orleans"`                                                                     |
| `state`              | string         | Two-letter state code of the portal: `FL`, `LA` or `DE`                                                                                                                                                                                                                                                                                                               | `"LA"`                                                                                      |
| `title`              | string or null | Solicitation title as the agency wrote it, bid numbers included (`Bid No. 3000026521 Diamond Mowers` keeps its number); null when the title carries an email address or a phone-shaped number (a bid number beside a year can read as one; then the number, which is already in `solicitationNumber`, is removed and the rest of the title kept)                      | `"RFP for Statewide Student Assessments for LDOE"`                                          |
| `solicitationNumber` | string or null | The agency's own solicitation number (advertisement, bid or contract number) as printed on the portal; an identifier, so it may be all digits                                                                                                                                                                                                                         | `"OMB-MC3804000164"`                                                                        |
| `category`           | string or null | The portal's classification: Florida's advertisement type (`Invitation to Bid`, `Request for Proposals`, `Invitation to Negotiate`, `Request for Quote`, `Agency Decision`, `Grant Opportunities`, `Informational Notice` and others), Delaware's UNSPSC family codes as listed, null for Louisiana whose department pages carry no category                          | `"UNSPSC 7215"`                                                                             |
| `postedAt`           | string or null | When the posting was published, ISO 8601, UTC. Florida publishes a time; Louisiana and Delaware publish a date only, so it is null there                                                                                                                                                                                                                              | `"2026-09-24T19:01:41.000Z"`                                                                |
| `postedDate`         | string or null | Date the posting was published, `YYYY-MM-DD`, as the portal shows it                                                                                                                                                                                                                                                                                                  | `"2026-09-24"`                                                                              |
| `closesAt`           | string or null | Response deadline or bid opening, ISO 8601, UTC. Florida publishes UTC; Louisiana publishes Central Time, converted here; Delaware's list gives a date only, so it is null there; null for a cancelled bid                                                                                                                                                            | `"2026-11-10T16:00:00.000Z"`                                                                |
| `closesDate`         | string or null | Response deadline or bid opening date, `YYYY-MM-DD`, as the portal shows it; null for a cancelled bid                                                                                                                                                                                                                                                                 | `"2026-11-10"`                                                                              |
| `status`             | string         | Always present: `open`, or `cancelled` for a Louisiana bid the portal still lists with a cancellation notice. Every portal is read for open postings, so a record without a status field is `open`                                                                                                                                                                    | `"open"`                                                                                    |
| `description`        | string or null | The opening two sentences of the agency's own text, Florida only, after every sentence carrying an email address, a phone-shaped number, an honorific, a role followed by a name, a licence number or a health detail is dropped whole, cut to 500 characters; null for the other portals, which publish no description on the pages read, and when nothing remains   | `"The Florida Department of Agriculture and Consumer Services ... seeks competitive bids."` |
| `documentsUrl`       | string or null | Where the documents are: Florida's first attachment download, Louisiana's original bid document, Delaware's document list for the bid (the same list its detail page loads); null when the portal lists none                                                                                                                                                          | `"https://wwwcfprd.doa.louisiana.gov/osp/lapac/agency/pdf/9067600.pdf"`                     |

### Input

| Field                | Type             | Default                | Meaning                                                                                                                                                                                                                                                                                |
| -------------------- | ---------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sources`            | array of strings | all three              | Any of `florida-vbs`, `louisiana-lapac`, `delaware-bids`. `maxItems` is split evenly across the portals you choose, so a default run asks for 50 from each; a portal that lists fewer than its share (Delaware, at about 45 open bids) gives what it has and the others fill the rest. |
| `states`             | array of strings | empty, meaning all     | Two-letter codes. Each portal covers one state, so `["FL", "DE"]` keeps those two portals. A code no portal covers is logged and ignored; if nothing is left the run fails with a clear message.                                                                                       |
| `query`              | string           | empty                  | Keep only solicitations whose `title`, `solicitationNumber` or `agencyName` contains this text, case-insensitive. It is a filter applied after fetching, not a portal search, so a narrow query returns fewer items, not a longer crawl.                                               |
| `maxItems`           | integer          | 150                    | Stop after this many items. The three portals together list roughly 300 to 350 open postings at a time (Florida about 170, Louisiana about 120, Delaware about 45), so a run asking for more than that stops when the pages run out and says so in the log.                            |
| `proxyConfiguration` | object           | Apify datacenter proxy | Standard Apify proxy settings. Datacenter proxies are sufficient. Running locally without an Apify login, set it to `{ "useApifyProxy": false }`.                                                                                                                                      |

### Pricing

Pay per event, two events. `actor-start`: $0.02, once per run, covers the fixed overhead of starting and reading the three portals' index pages. `result`: $0.003 per item, that is $3 per 1,000 items. Items are pushed and charged in the same step, so a run never delivers more items than it charges for, and a run stops cleanly when your maximum charge is reached. A default run of 150 items costs $0.47.

Measured platform cost: the default run makes 56 requests (two Florida list pages and 50 detail records, the Louisiana department index and one or two department pages, the Delaware agency list and one bid list), transfers about half a megabyte, and the crawler runs for about 65 seconds. At Apify's list prices ($0.40 per compute unit at 1 GB of memory, $0.20 per GB of transfer) that is about $0.007 per run, or about $0.05 per 1,000 items; larger runs cost a little more per item because every Florida item is one detail request. The $3 price is therefore roughly 60 times the platform cost, above the house floor of three times.

Free allowance: Apify's free plan carries $5 of usage a month. At these prices that covers 10 default runs of 150 items ($0.47 each, $4.70 in all), or about 1,600 items across fewer, larger runs, before a paid plan is needed.

### Limits and honesty

- Three states. This Actor reads the portals that passed the house's intake gate on 2026-09-26: public listing visible logged out, robots.txt permitting the paths used, no published terms forbidding storage or redistribution, and no challenge to a plain HTTP request. Bonfire portals (robots.txt disallows everything), DemandStar (open bids are behind registration; only recently awarded bids are public), BidNet Direct (an AWS WAF JavaScript challenge answers a plain request), Texas SmartBuy (robots.txt disallows everything), Cal eProcure (a 403 to any non-browser identity) and Georgia's GPR (redirects a non-browser identity to an unsupported-browser page) did not pass and are not read. More portals will be added as they pass the same gate.
- Postings, not only bids. Florida's Vendor Bid System lists everything an agency posts, including agency decisions (intent to award), single-source notices, grant opportunities and informational notices, and this Actor returns what the portal lists as open; `category` tells them apart. Louisiana keeps a cancelled bid on its open list with a cancellation notice for a while; it is returned with `status` `cancelled` and no closing date.
- Even split, largest first. `maxItems` is shared evenly across the portals. Louisiana's department pages are read one at a time in order of how many open bids they hold, so a default run's Louisiana share comes mostly from the central Office of State Procurement (about 70 bids) and the parish and city pages are reached only by a larger `maxItems` or a Louisiana-only run. Florida list records beyond the share are held and fetched only when another portal came up short, in a second pass that starts after a one-minute pause so the whole run stays under 30 requests a minute.
- Dates. Florida publishes UTC timestamps; Louisiana publishes a date and a Central Time clock time, converted to UTC here; Delaware's list publishes dates only (its detail page shows a local time this Actor does not fetch). The `...Date` fields carry what every portal shows; the `...At` fields carry a UTC timestamp only where a portal gives a time, and are null otherwise rather than an invented midnight.
- Description is Florida only, and short. It is the opening two sentences of the agency's own text, kept whole with the numbers the agency wrote (addendum numbers, bid numbers, attachment ids), after every sentence that carries contact or person data is dropped whole. The house filter (`stripContactProse`, shared by every Actor) drops a sentence with an email address, a phone-shaped number, an honorific, a role word followed by a name, a licence number or a health word; this Actor adds three rules for what these portals' addenda write and the shared filter lets through: an honorific followed by a name ("Purchasing Director, Mr. \[name]"), a job title, a connective and a name ("changing procurement manager from \[name] to \[name]", "PROJECT MANAGER : \[name]"), and a name followed by a job title ("submitted to \[name], Contracts Specialist"). On 2026-09-26 the filter was read against every open Florida posting (168 records, 1,571 sentences): 66 sentences carried an email address or a phone-shaped number, 23 more named an officer without either, and 14 were dropped by the shared filter's licence and health rules on tender wording ("license certification", "qualified disability", a grant's programme name) rather than on a person; every other sentence stayed, and every record kept a description. Those 14 are the house rule applied as written, and the description then starts at the next clean sentence. This is a filter, not a guarantee. The extractor cannot recognise every personal name in prose; a name that gets through is a bug, and reporting it on the Issues tab gets it stripped the same day. Louisiana's department pages and Delaware's bid list publish no description text (Delaware's `ContractMessage` is empty on every open bid), so `description` is null there at the source.
- Not collected, on purpose: Florida's response contact block (name, address, phone, email) and its `favorite`, `submitted`, `intendToParticipate` and audit flags; Delaware's `ContactEmail`; Louisiana's "Help" contact codes and the contact pop-up they open; commodity code lists; attachment lists beyond the first document; Delaware's detail message and document list (one more request per bid, not made).
- The portals change. Florida's search API and Delaware's grid endpoint are the ones their own pages call; Louisiana's pages are plain ColdFusion HTML. When any of them changes, the daily test fails, the house status page shows this Actor as under maintenance, a fix ships, and the changelog records it.

### Legal

Florida. The Vendor Bid System at vendor.myfloridamarketplace.com has no robots.txt (a 404, checked 2026-09-26), so no path is disallowed; this Actor reads the public search endpoint `/mfmp/pub/search/bids` and the public detail endpoint `/mfmp/pub/search/bids/detail`, which the portal's own logged-out search page calls. The MyFloridaMarketPlace Terms of Use (PUR 3775, July 2022, https://dms-media.ccplatform.net/content/download/156614/file/MFMP%20Terms%20of%20Use\_7.2022.pdf) are presented to a Vendor at registration ("When presented with the Terms of Use at Vendor registration, you, the Vendor, will be given an opportunity to click 'I Accept'") and say at section 5, Ownership: "The State and its Service Provider also grant you a non-exclusive, non-transferable license to print and download content on MFMP solely for your non-commercial use, provided that you maintain the copyright notice and any other notices that appear on any such copies." They say nothing about automated access. The house holds no MyFloridaMarketPlace account, has never registered as a Vendor, and never logs in, so it has not entered those terms. The solicitations themselves are published by statute: section 287.042(3)(b)2, Florida Statutes, requires the department to "designate a centralized website on the Internet for the department and other agencies to electronically post solicitations, decisions or intended decisions, and other matters relating to procurement", and these postings are public records under chapter 119.

Louisiana. LaPAC's robots.txt (https://wwwcfprd.doa.louisiana.gov/robots.txt, checked 2026-09-26) disallows only `/checkbook/stateEmployees/`; the `/osp/lapac/` pages this Actor reads (`deptbids.cfm` and `dspBid.cfm`) are allowed. The Division of Administration publishes a privacy policy (https://www.doa.la.gov/privacy-policy/) that "applies solely to the direct use of doa.louisiana.gov" and says nothing about automated access or reuse; LaPAC itself publishes no terms of use. The postings are required by statute: La. R.S. 39:1594(C)(5) says "All bids shall be advertised by a using agency through a centralized electronic interactive environment administered by the division of administration", and LaPAC is that environment.

Delaware. The Bid Solicitation Directory at mmp.delaware.gov answers `/robots.txt` with a redirect to its home page (checked 2026-09-26), so there is no robots file and no path is disallowed; this Actor reads `/Agency/Index` and the `/Bids/GetBids` endpoint the directory's own grid calls. The directory's Privacy link points to Government Support Services' policy (the link's path answers 404; the page is at https://gss.omb.delaware.gov/privacy.shtml, "GSS Privacy Policy and Disclaimer", read 2026-09-26), which says "Any copies of these documents that you make must retain all copyright and other proprietary notices as contained herein" and "The use and display of any photographs or any copies of documents that you make must retain all copyright and other proprietary notices as contained herein and is covered under the Federal Copyright laws and may ne used only with the express written permission of the State of Delaware as authorized by the Office of Management and Budget, Government Support Services' Director or designee" (sic); it says nothing about automated access. This Actor copies no document and no photograph: it records the index entries (title, number, agency, dates, UNSPSC codes) and links to the documents where they sit. The directory describes itself as "the State of Delaware's central repository for all open solicitations", and 29 Del. C. § 6923(b)(1) requires that "Public advertising shall require electronic publication accessible to the public".

The house. On every portal this Actor fetches only logged-out public pages and the JSON endpoints those pages call, at most 30 requests a minute and two at a time, under the declared identity `SubRosaBot/1.0` (`SubRosaBot/1.0 (+https://subrosa.dev/bots)` in full), with header generation off, no session pool and no cookies kept. None of the three portals states a `Crawl-delay` (Florida and Delaware publish no robots.txt; Louisiana's sets none, checked 2026-09-26), so the same-domain delay is set to 0 explicitly and the rate limit above is the whole of the politeness. It never impersonates a browser; the portals that answer a declared bot with a challenge or a block were left out rather than fought. If any of the three asks the house to stop, in any form, the Actor is unpublished the same day and the changelog says why.

Personal data. Under the house ruling on government records (2026-09-26), a public tender names an agency and a place because the record is about them, and those stay; every person named on it goes at the schema level. Florida's detail record carries a `responseContact` block with the officer's name, street address, phone and email: dropped. Delaware's list carries `ContactEmail` for every bid: dropped. Louisiana's list carries a "Help" code that opens a contact pop-up: not fetched. A title that carries an email address or a phone-shaped number is withheld whole (phone detection is by shape, never by digit count, so bid numbers written into titles stay; where a bid number beside a year reads as a phone shape, the number is removed from the title and the rest kept, since the number is already in `solicitationNumber`); the Florida description is limited to two sentences with every sentence carrying contact or person data dropped whole, as the Limits section describes. The only names returned are organizations: departments, universities, colleges, districts, parishes, cities, authorities, and, inside a Florida agency decision's text, the company being awarded.

You. A buyer who holds an account at any of these portals is bound by the terms they accepted there, including the MyFloridaMarketPlace non-commercial license quoted above, and is responsible for whether and how they use this data. You are responsible for your downstream use of the output and for the law that applies to you.

### Changelog

- 2026-09-26: after review. `solicitationId` renamed `solicitationNumber` and declared an identifier in the dataset schema; the title and description filters replaced with the house `stripContactProse` and phone-by-shape rules, so bid numbers in titles and addendum numbers in descriptions survive; three targeted officer-line rules added; `status` always derived; `sameDomainDelaySecs` 0 stated; test fixtures use invented names, 555 numbers and example.com only.
- 2026-09-26: first release. Florida Vendor Bid System, Louisiana LaPAC and Delaware Bid Solicitation Directory.

### Support

Open an issue on the Actor's Issues tab. Replies within one day.

# Changelog

This Actor's version history is a separate document: https://apify.com/subrosa/sled-bids/changelog.md

# Actor input Schema

## `sources` (type: `array`):

Which public procurement portals to read. florida-vbs is Florida's Vendor Bid System (state agencies), louisiana-lapac is the Louisiana Procurement and Contract Network (state agencies, universities, community colleges, parishes, cities, school boards), delaware-bids is Delaware's Bid Solicitation Directory (state agencies, school districts, colleges). maxItems is shared evenly across the chosen portals.

## `states` (type: `array`):

Two-letter state codes to keep. Each portal covers one state (FL, LA, DE), so this narrows the chosen portals; a code no portal covers is logged and ignored. Empty means every chosen portal.

## `query` (type: `string`):

Keep only solicitations whose title, solicitation number or agency name contains this text (case-insensitive). Applied after fetching; it does not run a portal search. Leave empty for no filter.

## `maxItems` (type: `integer`):

Stop after this many items, shared evenly across the chosen portals. The default is sized so the default run finishes in under five minutes. The portals together list roughly 300 to 350 open solicitations at a time, so a run can reach about that many before the pages run out.

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

Apify proxy settings. Datacenter proxies are enough for these sources; residential proxies are not needed and cost more.

## Actor input object example

```json
{
  "sources": [
    "florida-vbs",
    "louisiana-lapac",
    "delaware-bids"
  ],
  "states": [],
  "query": "",
  "maxItems": 150,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

## `results` (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 = {
    "sources": [
        "florida-vbs",
        "louisiana-lapac",
        "delaware-bids"
    ],
    "states": [],
    "query": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("subrosa/sled-bids").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 = {
    "sources": [
        "florida-vbs",
        "louisiana-lapac",
        "delaware-bids",
    ],
    "states": [],
    "query": "",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("subrosa/sled-bids").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 '{
  "sources": [
    "florida-vbs",
    "louisiana-lapac",
    "delaware-bids"
  ],
  "states": [],
  "query": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call subrosa/sled-bids --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,subrosa/sled-bids"
        }
    }
}
```

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/6euAU9oshYBdt037l/builds/OKL0hQbOqhf2L5kCI/openapi.json
