Developers

Partner API

Read-only JSON access to stored opportunities, your organization's shared pipeline, and workflow status. Keys belong to one organization, are hashed at rest, can be limited by scope, and can be revoked at any time by a Company Admin.

Authentication

Each key belongs to one organization, is stored only as a hash, can be revoked at any time, and is read-only. Organization keys are issued by WeBuiltGov on request from your Company Admin (the full key is shown once). Send it on every request:

curl -H "x-hedy-app-key: hak_..." https://www.webuiltgov.com/api/partner/pipeline

Self-service keys created in the app under Company OS → Partner API keys start with wbg_ and use the x-webuiltgov-key header instead. That screen is being enabled; until it is, keys come from WeBuiltGov.

Missing or malformed key: 401 key_required. Revoked or unknown key: 401 key_invalid. Key without the resource's scope: 403 scope_missing. Any method other than GET: 405 read_only. Keys never allow writes.

Resources

PathScopeReturns
GET /api/partnernoneAPI index and resource list
GET /api/partner/opportunitiesopportunities:readStored SAM.gov, Grants.gov, and Utah local notices. Filters: q, naics (prefix), state, source (sam, grants, utah).
GET /api/partner/pipelinepipeline:readYour organization's shared board: item, pipeline, stage, status, deadline, official source link.
GET /api/partner/workflowsworkflows:readPer tracked project: go/no-go, estimate, package, award, fulfillment status, open tasks.

Every list takes limit (1-100, default 50) and offset, and returns total and nextOffset. Responses carry retrievedAt.

Public market data (no key)

/api/opportunities, /api/forecasts, /api/awards, /api/sources, and /api/intel (views agency-spend, competitors, recipient, sbir) are public JSON built from official sources. They are not a substitute for reading the original notice, and WeBuiltGov never submits a bid.

Limits

Partner routes are rate limited per caller. An organization can hold 10 active keys.