---
title: "Create a tender alert"
method: POST
path: "/v1/alerts"
---

# Create a tender alert

`POST /v1/alerts`

## Request

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

Register a saved tender search and an https webhook. For 30 days, new matching tenders from Doffin and TED are POSTed to the webhook after each nightly refresh, signed with HMAC-SHA256. All settings go in the query string.

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

## Query parameters

- `webhook` string, uri
- `q` string
- `cpv` string
- `region` string
- `buyer_orgnr` string

## Headers

- `PAYMENT-SIGNATURE` string

## Response `201`

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)
