USAC E-Rate School & Library Buyer Intelligence avatar

USAC E-Rate School & Library Buyer Intelligence

Pricing

$7.50 / 1,000 unique e-rate output records

Go to Apify Store
USAC E-Rate School & Library Buyer Intelligence

USAC E-Rate School & Library Buyer Intelligence

Official USAC Form 470 school/library network demand and original Form 471 requested funding. Separate modes, verified joins, public form contacts, provenance and Clay/n8n JSON/CSV. USD 7.50 per 1,000 unique records.

Pricing

$7.50 / 1,000 unique e-rate output records

Rating

0.0

(0)

Developer

AFK Digital

AFK Digital

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Security

Limited permissions

Share

Research school and library network demand using official USAC public data. Export certified Form 470 service requests or original Form 471 funding requests as clean JSON and CSV for Clay, n8n, spreadsheets and procurement analysis.

Two separate modes, with explicit financial meaning. Form 470 identifies certified competitive-bidding filings. Form 471 describes requested funding after services have been selected; it is funding history, not a current open tender.

Quick start

Default example: 25 certified Form 470 applications for funding year 2027, all states and service categories. The verified local example completed in about 25 seconds including independent source comparisons; runtime varies with USAC availability.

{
"recordMode": "470",
"fundingYear": 2027,
"state": "TX",
"serviceCategory": "C2",
"minRequestedAmount": 0,
"maxResults": 25,
"maxChargeUsd": 1,
"maxRuntimeSecs": 240
}

For funding history, choose a year with Form 471 filings:

{
"recordMode": "471",
"state": "TX",
"fundingYear": 2026,
"serviceCategory": "C2",
"minRequestedAmount": 1000,
"maxResults": 25,
"maxChargeUsd": 1
}

Inputs

InputDefaultMeaning
recordMode470470 or 471. One form type per run.
stateemptyTwo-letter state/territory code, case insensitive. Empty means all states.
fundingYear2027Funding year, not filing date. Supported source coverage begins in 2016. Choose 2026 for current Form 471 history.
serviceCategoryALLALL, C1 or C2. C1 means connectivity; C2 means internal connections, maintenance and managed internal broadband.
minRequestedAmount0Minimum requested discounted USD support per original FRN, only in 471 mode. Positive values in 470 mode fail validation.
maxResults25Maximum unique applications (470) or FRNs (471), up to 10,000.
maxChargeUsd1Additional event-cost limit, from USD 0 to USD 75.
maxRuntimeSecs240Extraction deadline, 10–900 seconds. Source timeouts or refreshes fail the run with delivered output retained.

What counts as one result?

ModeOutput unit and deduplication keySource version
470One application, key 470:funding_year:application_numberCurrent, Certified only
471One funding request, key 471:funding_year:application_number:funding_request_numberOriginal (as certified)

Form 470 service lines and RFP attachments can produce many raw rows. This Actor groups the matched rows into one application with a deduplicated service_requests array. Each service retains its ID, type, function, quantity, units, capacity and RFP URLs. If serviceCategory is selected, only matched category services are included.

Form 471 Basic Information is a many-to-one lookup using application number, funding year, form version and verified billed entity number. Identical duplicate Basic rows collapse. Conflicting matches fail rather than multiplying FRN records. No recipient-of-service or line-item join expands the output.

Form 470 and Form 471 application numbers are different namespaces. They are never joined by matching numbers. An establishing_form_470_number, if present, is exposed as a source-reported reference only; linked_470_verified is false because this Actor does not independently verify that relationship.

Amounts and status

  • Form 470 funding_request_amount_usd is always null: no bid budget is inferred from categories, quantities, historic awards or C2 program budgets.
  • Form 471 funding_request_amount_usd comes only from the original FRN funding_commitment_request. USAC defines this as the discount amount after discount calculations. It is the requested discounted support in USD, not total pre-discount project value.
  • Original means the form as submitted at certification. Current means the form processed by USAC. This Actor uses Original 471 values to preserve the requested amount. It does not substitute later commitment, revised or paid figures.
  • status is reported from the selected source version. A Funded status does not change the amount field into an approved amount.
  • A Certified Form 470 may have an expired RFP deadline or a contract already signed. Consult its RFP and procurement instructions; these results are not guaranteed open opportunities.
  • Form 471 records are funding history, not fresh invitations to bid.

Output fields

Each record includes application_number, billed_entity_name, entity_type, city_state, service_type, funding_request_amount_usd, contact_name, contact_email, contact_phone, form_type, funding_year, billed_entity_number, funding_request_number, status, source_url and fetched_at.

Additional fields explain provenance: record_key, form_version, service_category, amount_basis, contact_role, contact_phone_extension, source_updated_at and solicitation_note. Mode 470 adds service_requests, service_requests_json and allowable_contract_date. Mode 471 adds basic_join_status, basic_source_url and the source-reported 470 reference.

Missing source fields are null. No contact is guessed. The contact is the FCC form contact and may be a consultant; it is not a verified IT buyer, school employee, sales contact or purchasing decision-maker. source_updated_at is the source form modification timestamp when available, not an invented FRN update date. Dataset refresh epochs are recorded in the SUMMARY key-value record.

Official sources and dictionaries

Verified against live USAC metadata and current attached glossaries on October 29, 2026:

Each dataset metadata endpoint is https://opendata.usac.org/api/views/DATASET_ID.json. Its attachments section links to the official data glossary. Data comes from the JSON SODA resource endpoint, not legacy beta APIs or browser scraping. No login, proxy, CAPTCHA bypass or Playwright is used.

The live client checks required source fields and rowsUpdatedAt. It traverses application numbers or SODA row IDs with ordered keyset pagination, checks for refreshes before delivering each batch, and refuses partial oversized detail groups. The source can be corrected by USAC and is self-reported by applicants.

JSON, CSV, Clay and n8n

The Output tab exposes JSON, a flat CSV view and the run summary. Raw JSON retains service_requests arrays. The flat view includes service_requests_json as readable JSON text in one CSV cell; service_type is a semicolon-separated summary. Nulls export as blank CSV cells.

Start an asynchronous run with POST https://api.apify.com/v2/actors/afkdigital~usac-erate-school-library-buyer-intelligence/runs and pass the example JSON. Use your Apify API token in the Authorization: Bearer header. Poll GET /v2/actor-runs/RUN_ID until SUCCEEDED. Read defaultDatasetId from that response.

In n8n use HTTP Request nodes for run creation, polling and dataset retrieval. In Clay import the CSV or connect to the JSON endpoint. Keep tokens in the integration's credential store. Avoid hardcoding them into shared URLs.

Pricing and limits

USD 0.0075 per successfully stored unique result — USD 7.50 per 1,000. The configured Pay-per-Event event is apify-default-dataset-item. It applies to either mode, using the record_key units above. There is no Actor start fee and standard-run platform usage is not passed through to the user.

Source requests, failed requests, retries and duplicate source rows are not output events. Within a run, duplicate keys are skipped. On resurrection, keys are restored from the existing default Dataset before extraction. Dataset insert retries are disabled. A pending-write marker is persisted before insertion. On resurrection an already visible pending record is reconciled; an unresolved pending write fails closed without another append. Wait and resurrect again to reconcile late visibility. If visibility cannot be resolved, start a separate fresh run. Initial source refresh epochs are persisted before output and must still match after resurrection; otherwise a new run is required. Separate new runs are separate deliveries and may bill for the same source record again.

The lower of maxResults, the USD input limit and the Apify run spending limit controls output. Example: 25 records cost USD 0.1875; USD 0.015 permits two records. A limit below USD 0.0075 produces zero records. Accounts may display eligible subscription discounts or owner-run accounting separately from the configured retail price.

HTTP requests are sequential, spaced at least 600 ms apart, with 30-second timeouts and up to three bounded retries for network, 429 and 5xx failures. There is a maximum 50,000-row detail-group safety cap and a runtime deadline. Select a narrower state/category/year to keep large runs fast. Empty matching queries produce no paid output.

Data use

USAC publishes these datasets as Public Domain and its Data Hub permits use, reuse and redistribution. This Actor adds processing and provenance; it is not affiliated with USAC or the FCC.

Use public business contacts only for permitted E-Rate procurement and related research. USAC's privacy policy prohibits email harvesting for bulk mailing or spam. Review the Form 470/RFP communication instructions and applicable procurement rules before contacting an applicant. This Actor does not send messages.

Development and verification

Node 22, pinned Apify SDK, HTTP/JSON only.

npm ci
npm test
npm run live
npx apify-cli validate-schema

The test suite covers input validation, amount semantics, null budgets, join ambiguity, cross-form keys, retry limits, refresh detection, cursor construction, output deduplication, resurrection and result/cost limits. Live tests compare both modes to original USAC rows. Version: 1.0.1.