GovEdge

Behind the scenes

How often we check for new jobs

The government's job board limits how many times any tool can check for new postings each day. We use a registered business account, which allows far more checks than a free account — enough to check every 15 minutes, all day, every day.

Checks used today

8 of 1,000

Next check in

04:59

We look again every 15 minutes

Checks per day

96

you're fully covered

Technical details (for the curious)

This key today

0/1000

Entity personal key

UTC reset

21h 49m

Not a sliding window

15-minute cron

96

Fits if one search/run

Official GSA tiers

Same table as the SAM User Guide, Entity Management API, and Extracts API. Opportunities docs only say “limited based on federal or non-federal or general roles.”

Budget planner

Each search, each extra page, and each synopsis URL is one request against Entity personal key. Matching NAICS in GovEdge is free — looping ncode is not.

Your shape: 6 req/run × 96 = 576/1000. Under the cap with a 2-request reserve.

GovEdge worker

One unfiltered incremental search, limit 1000, NAICS scored locally. RSS is free.

Fits
Per run
6 req
Runs / day
96
Daily burn
576 / 1000
Safe cron
15 min

1 search page + 5 synopsis fetch. Headroom 42%.

Naive · 2 NAICS filters

One ncode search per tracked code, two pages, fetch every synopsis. Track codes on NAICS.

Over
Per run
12 req
Runs / day
96
Daily burn
1152 / 1000
Safe cron
30 min

4 search pages + 8 synopsis fetch. Headroom -15%.

Simulate this key

Spends against a local UTC-day bucket so you can feel a 10-request key die. Does not call api.sam.gov.

0 used · 1000 left · reserve 2

Opportunities v2 constraints

  • Endpoint api.sam.gov/opportunities/v2/search
  • Required: api_key, postedFrom, postedTo (MM/dd/yyyy).
  • Date window ≤ 365 days.
  • limit max 1000; default 1.
  • Search returns a description URL, not the synopsis. Fetching it is a second request per notice and counts against the same daily key quota.
  • Per API key, not per IP. The same key on two servers shares one bucket.
  • Midnight UTC. Not a sliding window. No partial refill.
  • Keys are issued through api.data.gov. An hourly throttle exists on that layer (~1,000/hour typical). For 10/day and 1,000/day keys the IAE daily cap binds first.

429 · code 900804

IAE returns throttled-out when the daily bucket is empty. Retry-After points at the next UTC midnight.

{"code":"900804","message":"Message throttled out","description":"You have exceeded your quota. You can access API after 2026-09-06 00:00:00+0000 UTC"}

Parsed retry: 2026-09-06 00:00:00+0000

Only federal system accounts may request a raise (FSD.gov incident, subject “API Rate Increase”). Non-federal keys cannot.

What GovEdge actually spends

  1. One Opportunities search per run. Do not loop ncode — match NAICS after the JSON lands.
  2. postedFrom / postedTo required. Window ≤ 1 year. Incremental: yesterday → today, MM/dd/yyyy.
  3. limit=1000, offset=0. A second page is a second request. Public keys never paginate.
  4. Description URLs are optional. Cap fetches; skip notices already in the catalog.
  5. State RSS (CA / TX / VA / FL) does not spend the SAM key.
  6. On HTTP 429 code 900804, stop the worker until midnight UTC. Do not retry in-loop.
  7. Quota is per key. Staging and production must not share a 10/day key.
  8. GitHub Actions every 15 minutes on a private repo burns ~2,880 minutes/month — over the 2,000 free cap. Public repo or a $5 VPS.

Entity registration (the 10 → 1,000 jump) is the same flow as SAM.gov registration. A UEI-only record is not a role and does not lift the cap.

Sources