veldora-no Laws API
The Laws API from veldora-no — 3 operation(s) for laws.
The Laws API from veldora-no — 3 operation(s) for laws.
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-laws-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 Laws 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 Laws 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: Laws
paths:
/v1/laws:
get:
operationId: lawSearch
summary: Search Norwegian laws and regulations
description: 'Search current Norwegian laws and central regulations from Lovdata by words in the title or in the section text, optionally by type and ministry. Title matches rank first; each result carries up to three matching section snippets, not the full text.
Price: 0.01 USDC per successful call. Failed calls (4xx/5xx) are not charged.'
parameters:
- name: q
in: query
required: false
description: Up to 8 words; all must appear in the title, or all in one section. Leave out to list documents.
schema:
type: string
minLength: 2
maxLength: 100
- name: type
in: query
required: false
description: Only laws (lov) or only central regulations (forskrift).
schema:
type: string
enum:
- law
- regulation
- name: ministry
in: query
required: false
description: Part of the ministry name, e.g. Justis.
schema:
type: string
minLength: 2
maxLength: 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.01'
currency: USD
asset: USDC
atomic: '10000'
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:
- Laws
servers:
- url: https://veldora.no
/v1/laws/{id}:
get:
operationId: law
summary: Get one law or regulation
description: 'Metadata for one current law or central regulation from Lovdata (title, short title, date, ministry, last change, link to lovdata.no) and its table of contents: section ids, chapters and headings.
Price: 0.005 USDC per successful call. Failed calls (4xx/5xx) are not charged.'
parameters:
- name: id
in: path
required: true
description: Lovdata id, e.g. lov/2005-06-17-62 (a law) or forskrift/2010-01-29-72 (a regulation). Put it in the path as written, slash included.
schema:
type: string
pattern: ^(lov|forskrift)/\d{4}-\d{2}-\d{2}(-\d+)?$
- 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:
- Laws
servers:
- url: https://veldora.no
/v1/laws/{id}/sections/{section}:
get:
operationId: lawSection
summary: Get one section of a law or regulation
description: 'The full text of one section (§ or artikkel) of a current Norwegian law or regulation, with the ids of the previous and next section.
Price: 0.005 USDC per successful call. Failed calls (4xx/5xx) are not charged.'
parameters:
- name: id
in: path
required: true
description: Lovdata id, e.g. lov/2005-06-17-62 (a law) or forskrift/2010-01-29-72 (a regulation). Put it in the path as written, slash included.
schema:
type: string
pattern: ^(lov|forskrift)/\d{4}-\d{2}-\d{2}(-\d+)?$
- name: section
in: path
required: true
description: 'Section id as listed in the table of contents: § 3-1, URL-encoded, or just 3-1.'
schema:
type: string
minLength: 1
maxLength: 60
- 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:
- Laws
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