veldora-no Addresses API

The Addresses API from veldora-no — 2 operation(s) for addresses.

Operations 2

GET /v1/addresses Search addresses #
GET /v1/addresses/nearby Addresses near a point #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/veldora-no:veldora-no-addresses-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

veldora-no-addresses-api-openapi.yml Raw ↑
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