# Buy Nsw — 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 retrieve NSW Government tender opportunities and contract notices from buy.nsw, including detailed information about available opportunities, supplier hubs, and procurement categories. Filter opportunities by category and discover top procurement deals in real-time to stay informed about potential business contracts with the NSW Government.

**Category:** Government & Public Data | **Website:** [buy.nsw.gov.au/](https://buy.nsw.gov.au/) | **Docs:** [parse.bot/marketplace/8b5cc1c3-70af-4d1d-9299-447d53761b85/buy-nsw-gov-au-api](https://parse.bot/marketplace/8b5cc1c3-70af-4d1d-9299-447d53761b85/buy-nsw-gov-au-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-buy-nsw-gov-au-api-8b5cc1c3/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_notice_details

Retrieve full details of a contract award notice or standing offer notice by its UUID. Returns metadata including agency, type, category, description, and estimated amount payable.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Notice UUID from list_notices results (e.g. D2F5743E-93C5-447E-A2DF073D32AED475). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/get_notice_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### get_opportunity_details

Retrieve full details of a single tender opportunity by its UUID. Returns metadata (agency, type, category, locations), content sections (description, scope, assessment criteria), and associated file links with pre-signed S3 URLs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Opportunity UUID from list_opportunities results (e.g. AFA9A21A-9428-4FF9-B7A2C3D3CD29049D). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/get_opportunity_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id":"<string>"}'
```

### get_supplier_hub

Retrieve general information and resource links from the Supplier Hub landing page, including statistics (supplier count, opportunity count) and navigation links for suppliers and buyers.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/get_supplier_hub \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_top_opportunities

Retrieve the most recently updated open tender opportunities as a convenience snapshot. Returns up to 8 items from the first page sorted by last updated. No input parameters required.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/get_top_opportunities \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_notices

Retrieve a paginated list of contract award notices (CAN) and standing offer notices (SON). Supports filtering by keyword, category, and notice type. Each page returns up to 10 items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `categories` | string | No | Comma-separated category slugs to filter by (e.g. building-and-property,healthcare). |
| `noticeTypes` | string | No | Comma-separated notice types: CAN (Contract Award Notice), SON (Standing Offer Notice). |
| `page` | integer | No | Page number for pagination. |
| `query` | string | No | Search keyword to filter notices. |
| `sort` | string | No | Sort order for results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/list_notices \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"categories":"<string>","noticeTypes":"<string>","page":"<integer>","query":"<string>","sort":"<string>"}'
```

### list_opportunities

Retrieve a paginated list of open tender opportunities. Supports filtering by keyword and opportunity type. Results are sorted by last updated date by default. Each page returns up to 8 items.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `query` | string | No | Search keyword to filter opportunities by title or description. |
| `sort` | string | No | Sort order for results. |
| `types` | string | No | Comma-separated opportunity types to filter by (e.g. RFT, RFQ, RFP, EOI). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/list_opportunities \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","query":"<string>","sort":"<string>","types":"<string>"}'
```

### list_opportunity_categories

Retrieve available procurement categories and the count of open opportunities for each. Categories are extracted from the opportunity search page filter. The count may be zero when the site does not expose per-category totals.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-buy-nsw-gov-au-api-8b5cc1c3/list_opportunity_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```
