veldora-no Addresses API
The Addresses API from veldora-no — 2 operation(s) for addresses.
The Addresses API from veldora-no — 2 operation(s) for addresses.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/veldora-no:veldora-no-addresses-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Veldora No Addresses API
version: 1.0.0
contact:
name: Veldora
url: https://veldora.no/contact
license:
name: 'Data: NLOD 2.0 (Brreg, Lovdata), CC BY 4.0 (Doffin, Kartverket, PRH), Norges Bank (source named) and TED reuse terms; see description'
x-deprecation-policy:
url: https://veldora.no/docs#versioning
noticeDays: 90
headers:
- Deprecation
- Sunset
- Link
description: 'Operations tagged Addresses across 2 of this provider''s published API definitions: veldora-no-openapi.json, veldora-no-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://veldora.no
tags:
- name: Addresses
paths:
/v1/addresses:
get:
operationId: addressSearch
summary: Search addresses
description: 'Search Norwegian street and cadastral addresses from Kartverket by text, municipality or postcode: coordinates, postcode, municipality, cadastre numbers (gnr/bnr/fnr/snr) and number of units.
Price: 0.005 USDC per successful call. Failed calls (4xx/5xx) are not charged.'
parameters:
- name: q
in: query
required: false
description: Address text, e.g. Karl Johans gate 1.
schema:
type: string
minLength: 2
maxLength: 100
- name: municipality
in: query
required: false
description: 4-digit municipality number (kommunenummer), e.g. 0301 for Oslo.
schema:
type: string
pattern: ^\d{4}$
- name: postcode
in: query
required: false
description: 4-digit postcode, e.g. 0154.
schema:
type: string
pattern: ^\d{4}$
- name: page
in: query
required: false
description: Zero-based page.
schema:
type: integer
minimum: 0
default: 0
- name: size
in: query
required: false
description: Results per page.
schema:
type: integer
minimum: 1
maximum: 50
default: 10
- name: PAYMENT-SIGNATURE
in: header
required: false
description: Base64-encoded x402 v2 PaymentPayload. Leave out to get the price.
schema:
type: string
x-price:
amount: '0.005'
currency: USD
asset: USDC
atomic: '5000'
network: eip155:8453
responses:
'200':
description: Data. The PAYMENT-RESPONSE header holds the settlement receipt (base64 JSON).
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
PAYMENT-RESPONSE:
schema:
type: string
X-Data-Fetched-At:
schema:
type: string
format: date-time
X-Data-Stale:
schema:
type: string
enum:
- 'true'
- 'false'
content:
application/json:
schema:
type: object
properties:
data: {}
page:
type: object
meta:
type: object
'400':
description: Invalid input. Not charged; no payment is asked for.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 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.
headers:
PAYMENT-REQUIRED:
schema:
type: string
description: Base64-encoded PaymentRequired (x402 v2).
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequired'
'404':
description: Not found. Not charged.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: The same payment is being processed by another request. Retry with the same header.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limited. Not charged. See Retry-After.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal error. Not charged.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: A data source answered with an error. Not charged; retry.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Upstream data source, facilitator or settlement unavailable. Not charged; retry.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Addresses
servers:
- url: https://veldora.no
/v1/addresses/nearby:
get:
operationId: addressesNearby
summary: Addresses near a point
description: 'Norwegian addresses from Kartverket within a radius (1 to 1000 m) of a coordinate, nearest first, with distance in metres.
Price: 0.005 USDC per successful call. Failed calls (4xx/5xx) are not charged.'
parameters:
- name: lat
in: query
required: false
description: Latitude in degrees (WGS 84).
schema:
type: number
minimum: 57
maximum: 72
- name: lon
in: query
required: false
description: Longitude in degrees (WGS 84).
schema:
type: number
minimum: 4
maximum: 32
- name: radius
in: query
required: false
description: Search radius in metres.
schema:
type: integer
minimum: 1
maximum: 1000
default: 100
- name: page
in: query
required: false
description: Zero-based page.
schema:
type: integer
minimum: 0
default: 0
- name: size
in: query
required: false
description: Results per page.
schema:
type: integer
minimum: 1
maximum: 50
default: 10
- name: PAYMENT-SIGNATURE
in: header
required: false
description: Base64-encoded x402 v2 PaymentPayload. Leave out to get the price.
schema:
type: string
x-price:
amount: '0.005'
currency: USD
asset: USDC
atomic: '5000'
network: eip155:8453
responses:
'200':
description: Data. The PAYMENT-RESPONSE header holds the settlement receipt (base64 JSON).
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
PAYMENT-RESPONSE:
schema:
type: string
X-Data-Fetched-At:
schema:
type: string
format: date-time
X-Data-Stale:
schema:
type: string
enum:
- 'true'
- 'false'
content:
application/json:
schema:
type: object
properties:
data: {}
page:
type: object
meta:
type: object
'400':
description: Invalid input. Not charged; no payment is asked for.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: 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.
headers:
PAYMENT-REQUIRED:
schema:
type: string
description: Base64-encoded PaymentRequired (x402 v2).
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequired'
'404':
description: Not found. Not charged.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: The same payment is being processed by another request. Retry with the same header.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limited. Not charged. See Retry-After.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal error. Not charged.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: A data source answered with an error. Not charged; retry.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Upstream data source, facilitator or settlement unavailable. Not charged; retry.
headers:
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit-Limit:
$ref: '#/components/headers/RateLimit-Limit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimit-Remaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Addresses
servers:
- url: https://veldora.no
components:
headers:
RateLimit-Limit:
description: Requests allowed per window.
schema:
type: integer
RateLimit:
description: Remaining quota and seconds to reset, structured (draft-ietf-httpapi-ratelimit-headers), e.g. "per-ip";r=119;t=60.
schema:
type: string
Retry-After:
description: Seconds to wait before retrying.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Policy:
description: 'Quota policy: 120 requests per 60 seconds per IP, e.g. "per-ip";q=120;w=60.'
schema:
type: string
schemas:
Error:
type: object
description: Every error from the API has this shape. Branch on `error.code`; `retryable` says whether the same request can succeed later.
properties:
error:
type: object
properties:
code:
type: string
description: Machine-readable error code.
examples:
- invalid_orgnr
- invalid_id
- invalid_parameter
- unknown_parameter
- missing_filter
- paging_limit
- enk_name_search
- not_found
- method_not_allowed
- rate_limited
- payment_in_progress
- settlement_pending
- payments_unavailable
- facilitator_unavailable
- data_unavailable
- upstream_unavailable
- temporarily_unavailable
- internal_error
message:
type: string
description: What went wrong and what to do next, in English.
retryable:
type: boolean
description: 'True for 429, 502, 503 and 504: try again later with the same request.'
docs:
type: string
format: uri
description: Link to the error reference.
required:
- code
- message
- retryable
- docs
additionalProperties: true
required:
- error
PaymentRequired:
type: object
description: x402 v2 PaymentRequired. The same object is base64-encoded in the PAYMENT-REQUIRED header.
properties:
x402Version:
type: integer
const: 2
error:
type: string
description: Why a sent payment was refused (absent on the first 402).
resource:
type: object
properties:
url:
type: string
format: uri
description:
type: string
mimeType:
type: string
accepts:
type: array
items:
type: object
properties:
scheme:
type: string
const: exact
network:
type: string
description: CAIP-2 chain id, e.g. eip155:8453.
amount:
type: string
description: Price in USDC atomic units (6 decimals).
asset:
type: string
description: USDC contract address.
payTo:
type: string
maxTimeoutSeconds:
type: integer
extra:
type: object
required:
- scheme
- network
- amount
- asset
- payTo
extensions:
type: object
required:
- x402Version
- accepts
externalDocs:
description: Docs, pricing and examples
url: https://veldora.no/docs
x-refined-from:
- veldora-no-openapi.json
- veldora-no-original.json
x-mcp:
url: https://veldora.no/mcp
transport: streamable-http