Search the RFP opportunities catalog
Enterprise catalog-wide search over canonical procurement opportunities (`rfp_opportunities`) harvested from public portals -- distinct from the legacy per-entity RFP records attached to unlocked districts. Filter by buyer state, status, posted/closing date windows, and a title keyword; ordered by first_seen_at descending. Gated by the `rfp_feed` module entitlement; otherwise responds 403 entitlement_required. **Free (0 credits).**
Enterprise catalog-wide search over canonical procurement opportunities (rfp_opportunities) harvested from public portals -- distinct from the legacy per-entity RFP records attached to unlocked districts. Filter by buyer state, status, posted/closing date windows, and a title keyword; ordered by first_seen_at descending. Gated by the rfp_feed module entitlement; otherwise responds 403 entitlement_required. Free (0 credits).
API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...
In: header
Query Parameters
Comma-separated two-letter buyer state codes
Comma-separated statuses: open, closed, unknown, cancelled, awarded
Only opportunities first seen on/after this ISO date (first_seen_at). Date-only values compare as midnight UTC.
Only opportunities first seen on/before this ISO date (first_seen_at). Date-only values compare as midnight UTC.
Only opportunities due on/after this ISO date (due_at). Date-only values compare as midnight UTC.
Only opportunities due on/before this ISO date (due_at). Date-only values compare as midnight UTC.
Keyword search on the opportunity title
251 <= value <= 10000 <= value <= 9007199254740991Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://loading/api/v1/rfps"{
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"title": "string",
"buyer_name": "string",
"buyer_state": "string",
"solicitation_id": "string",
"status": "open",
"source_url": "string",
"detail_url": "string",
"due_at": "string",
"due_date": "string",
"first_seen_at": "string",
"last_seen_at": "string",
"confidence": 0
}
],
"pagination": {
"total": -9007199254740991,
"limit": -9007199254740991,
"offset": -9007199254740991,
"has_more": true
}
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "entitlement_required",
"module": "string",
"message": "string",
"contact": "string"
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}Start an on-demand prospecting run POST
"Find me more opportunities" — kicks off one agent research run for a project the caller owns. Results land in the opportunities feed as they are verified (typically 30-45 minutes). Requires completed project onboarding. **Free (0 credits).**
Search schools GET
Search and filter schools. Same access control pattern as districts. **Free (0 credits).**