# Bdtender — 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 browse tender listings from Bangladesh's largest tender portal, discovering opportunities by category, organization, and location while accessing real-time tender data and site statistics. Get detailed information on individual tenders, view live postings, and see what was published today to stay updated on the latest bidding opportunities.

**Category:** Government & Public Data | **Website:** [bdtender.com/](https://bdtender.com/) | **Docs:** [parse.bot/marketplace/e6d2fc35-1b84-4b56-817a-761727da5f35/bdtender-com-api](https://parse.bot/marketplace/e6d2fc35-1b84-4b56-817a-761727da5f35/bdtender-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-bdtender-com-api-e6d2fc35/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_categories

Retrieve the full hierarchical tree of tender categories. Each node has an id, parent reference, and display text. Use category IDs in the search_tenders category filter.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_live_tenders

Retrieve a paginated list of all currently live (active) tenders. Equivalent to an unfiltered search. Returns the same tender structure as search_tenders.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_live_tenders \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_locations

Retrieve the full hierarchical tree of locations (districts and upazilas). Each node has an id, parent reference, and display text. Use location IDs in the search_tenders location filter.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_locations \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_organizations

Retrieve the full hierarchical tree of government organizations and departments. Each node has an id, parent reference, and display text. Use organization IDs in the search_tenders organization filter.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_organizations \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_site_statistics

Get current site-wide statistics: total live tenders, private tenders, corrigendum count, and number of tenders published today.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_site_statistics \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_tender_detail

Retrieve basic information for a specific tender by its tender code. Returns listing data including work description, dates, source, advertisement types, and a note about authentication requirements for full details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `tender_id` | string | Yes | The unique tender code (e.g. '11525191'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_tender_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tender_id":"<string>"}'
```

### get_tenders_published_today

Retrieve tenders published on the current date (Bangladesh time, UTC+6). Returns the same paginated structure as search_tenders filtered to today's publications. May return an empty list if no tenders have been published yet today.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/get_tenders_published_today \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### search_tenders

Full-text search over Bangladesh tender listings. Supports filtering by keyword, category, organization, location, date range, and advertisement type. Returns paginated results with tender code, description, dates, source, and advertisement types. Note: category, organization, location, and advertisement type filters may return reduced results for unauthenticated access.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `adv_type` | string | No | Advertisement type filter. |
| `category` | string | No | Category ID from get_categories endpoint (e.g. 'T1', 'T2'). |
| `date_from` | string | No | Start date filter in DD/MM/YYYY format. |
| `date_to` | string | No | End date filter in DD/MM/YYYY format. |
| `location` | string | No | Location ID from get_locations endpoint (e.g. 'DDist-02'). |
| `organization` | string | No | Organization ID from get_organizations endpoint (e.g. 'DG62'). |
| `page` | integer | No | Page number for pagination. |
| `query` | string | No | Search keyword or tender ID to match against work descriptions. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-bdtender-com-api-e6d2fc35/search_tenders \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"adv_type":"<string>","category":"<string>","date_from":"<string>","date_to":"<string>","location":"<string>","organization":"<string>","page":"<integer>","query":"<string>"}'
```
