---
title: "Search public tenders"
method: GET
path: "/v1/tenders"
---

# Search public tenders

`GET /v1/tenders`

## Request

- Base URL: `https://veldora.no`
- URL: `https://veldora.no/v1/tenders`
- Auth: none declared

Norwegian public procurement notices from Doffin and TED, filterable by CPV code, region (county or NUTS), deadline and buyer.

Price: 0.01 USDC per successful call. Failed calls (4xx/5xx) are not charged.

## Query parameters

- `q` string
- `cpv` string
- `region` string
- `deadline_from` string, date
- `deadline_to` string, date
- `buyer_orgnr` string
- `open` boolean
- `page` integer
- `size` integer

## Headers

- `PAYMENT-SIGNATURE` string

## Response `200`

Data. The PAYMENT-RESPONSE header holds the settlement receipt (base64 JSON).

- object
  - `data` unknown
  - `page` object
  - `meta` object

## Other responses

- `400`: Invalid input. Not charged; no payment is asked for.
- `402`: Payment required. The PAYMENT-REQUIRED header (base64 JSON, x402 v2) lists what to pay. Sign it with an x402 client and resend the request with the PAYMENT-SIGNATURE header. The body repeats the requirements, plus `error` when a payment was rejected.
- `404`: Not found. Not charged.
- `405`: Method not allowed.
- `409`: The same payment is being processed by another request. Retry with the same header.
- `429`: Rate limited. Not charged. See Retry-After.
- `500`: Internal error. Not charged.
- `502`: A data source answered with an error. Not charged; retry.
- `503`: Upstream data source, facilitator or settlement unavailable. Not charged; retry.

---

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