---
title: "Federal bid protests, pending and decided: who protested, on which solicitation, when it was filed, the date GAO must decide by, and the outcome. status=Open is the live set; filter to Sustained for the protests that actually disturbed an award. Factual, never scored."
method: GET
path: "/api/v1/protests"
tags: ["Bid Protests"]
---

# Federal bid protests, pending and decided: who protested, on which solicitation, when it was filed, the date GAO must decide by, and the outcome. status=Open is the live set; filter to Sustained for the protests that actually disturbed an award. Factual, never scored.

`GET /api/v1/protests`

## Request

- Base URL: `https://govconapi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://govconapi.com/api/v1/protests`
- Auth: HTTP bearer

## Query parameters

- `outcome` string, nullable: Denied | Dismissed | Sustained | Withdrawn | Granted
- `agency` string, nullable: Awarding-agency substring, case-insensitive
- `status` string, nullable: Open | Closed. Open = the protest is still pending before GAO.
- `case_type` string, nullable: e.g. 'Bid Protest' or 'Reconsideration'. Substring, case-insensitive.
- `filed_from` string, nullable: Filed on or after this ISO date (YYYY-MM-DD).
- `filed_to` string, nullable: Filed on or before this ISO date (YYYY-MM-DD).
- `case_number` string, nullable: GAO case, e.g. 'B-424433'. Returns every docket on that case (B-424433.1, .2, ...).
- `protester` string, nullable: The firm that FILED the protest. Substring, case-insensitive. Use this rather than `search` for competitor research: `search` also matches the agency column.
- `search` string, nullable: Full-text over protester, agency, solicitation number and file number. Wrap in double quotes for a phrase.
- `fields` string, nullable: Comma-separated response fields to return. `b_number` is always included. Example: `fields=b_number,outcome,due_date`. Omit for the full row.
- `sort` string: recent (default) | oldest | filed | due. 'due' = soonest statutory deadline first.
- `limit` integer
- `offset` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/govconapi/apis/govcon-api.md) · [All operations](https://skmtc.dev/govconapi/apis/govcon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/govconapi/apis/govcon-api/revisions/32e498016218?raw)
