API Reference

BidStacker's REST API for programmatic access to RFPs, proposals, templates, and AI features.

Authentication

Most endpoints require a Supabase session cookie. Authenticate by logging in through the web app. For server-to-server access, use the MCP integration (see MCP Docs).

Base URL: https://bidstacker.io

Looking for AI agent integration?

The MCP server provides 29 tools for Claude Code, Claude Desktop, and other AI agents.

MCP Docsarrow_forward
GET/api/rfps

Search and filter RFPs

Auth: Cookie (Supabase session)

Parameters
keywordstringFull-text search across title, description, agency
limitnumberMax results (default: 50)
POST/api/rfps

Trigger an RFP sync from SAM.gov

Auth: Cookie (Supabase session)

Parameters
keywordstringSearch keyword for SAM.gov
limitnumberMax results to fetch
GET/api/saved-rfps

List bookmarked RFPs for the authenticated user

Auth: Cookie (Supabase session)

POST/api/saved-rfps

Bookmark an RFP

Auth: Cookie (Supabase session)

Parameters
rfpIdstring (UUID)RFP to bookmark
DELETE/api/saved-rfps

Remove an RFP bookmark

Auth: Cookie (Supabase session)

Parameters
rfpIdstring (UUID)RFP to unbookmark
GET/api/notifications

List notifications for authenticated user

Auth: Cookie (Supabase session)

PUT/api/notifications

Mark notifications as read

Auth: Cookie (Supabase session)

Parameters
idsstring[] (UUIDs)Notification IDs to mark read
PUT/api/proposals/[id]/status

Change proposal status with transition validation

Auth: Cookie (Supabase session)

Parameters
statusenumdraft | review | submitted | awarded | lost
POST/api/proposals/generate-draft

Generate AI content for a proposal section

Auth: Cookie (Supabase session) + Rate limit (10/min)

Parameters
rfpIdstring (UUID)Target RFP
sectionTitlestringSection to generate
toneenumformal | technical | persuasive
POST/api/ai

AI text processing (improve, shorten, expand, etc.)

Auth: Cookie (Supabase session) + Rate limit

Parameters
actionenumprofessional | shorten | expand | summarize | custom
contentstringText to process
GET/api/templates

List proposal templates (default + organization)

Auth: Cookie (Supabase session)

POST/api/templates

Create a new proposal template

Auth: Cookie (Supabase session)

Parameters
namestringTemplate name
sectionsarraySection definitions [{title, body?}]
GET/api/sync/status

Get recent sync run history

Auth: Cookie (Supabase session)

POST/api/sync/trigger

Manually trigger a data sync

Auth: Cookie (Supabase session) + Rate limit (3/min)

Parameters
sourceenumfederal | state
daysBacknumberDays to look back (1-7)
POST/api/matching-framework/generate

Generate AI matching framework from org profile

Auth: Cookie (Supabase session)

POST/api/contact

Submit a contact form message

Auth: Public (rate limited by IP)

Parameters
namestringSender name
emailstringSender email
subjectstringMessage subject
messagestringMessage body