# Bidsandtenders — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and discover public bid opportunities across Canada and the USA to find relevant procurement projects for your business. Access real-time tender data from the bids&tenders eProcurement platform to identify and pursue new contract opportunities.

**Category:** Government & Public Data | **Website:** [bidsandtenders.com/bid-opportunities/](https://bidsandtenders.com/bid-opportunities/) | **Docs:** [parse.bot/marketplace/2e81e4fc-c59d-44da-bc92-f8899dab7f5e/bidsandtenders-com-api](https://parse.bot/marketplace/2e81e4fc-c59d-44da-bc92-f8899dab7f5e/bidsandtenders-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-bidsandtenders-com-api-2e81e4fc/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### search_bids

Search open and historical bid opportunities by keyword, status, organization, bid type, and date range. Results are paginated with up to 50 bids per page, ordered by closing date descending. To find bids in a specific province (e.g. BC), pass a comma-separated list of organization IDs for that region.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `bid_type` | string | No | Filter by bid type (e.g. Public, Prequalification, Invitational). |
| `keyword` | string | No | Free-text search against bid name and organization name. |
| `organization` | string | No | Comma-separated list of organization IDs to filter results. Organization IDs can be discovered from the platform's organization dropdown (e.g. 5231 for Metro Vancouver, 12416 for City of Abbotsford). |
| `page` | integer | No | Page number (1-indexed). Each page returns up to 50 bids. |
| `publish_from` | string | No | Filter bids published on or after this date, format MM/DD/YYYY. Omit to not filter by start date. |
| `publish_to` | string | No | Filter bids published on or before this date, format MM/DD/YYYY. Omit to not filter by end date. |
| `status` | string | No | Filter by bid status. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bidsandtenders-com-api-2e81e4fc/search_bids \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bid_type":"<string>","keyword":"<string>","organization":"<string>","page":"<integer>","publish_from":"<string>","publish_to":"<string>","status":"<string>"}'
```
