# 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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/buy-nsw/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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/credits/buy-nsw/get-notice-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/buy-nsw/get-opportunity-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/buy-nsw/get-supplier-hub \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/buy-nsw/get-top-opportunities \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/buy-nsw/list-notices \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/buy-nsw/list-opportunities \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/buy-nsw/list-opportunity-categories \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.