Nordlet Audit API

The audit API from Nordlet — 1 operation(s) for audit.

Operations 1

POST /v1/audit/list Audit list #

Specifications

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/nordlet:nordlet-audit-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

nordlet-audit-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Nordlet Accounting Audit API
  version: 0.5.7
  description: 'API-first accounting for the EU/EEA market (Lithuania first). Everything the product can do is available here.


    ## Conventions

    - Every operation is `POST /v1/{module}/{resource}/{action}` with a JSON body.

    - Authenticate with `Authorization: Bearer `. Keys carry scopes like `sales:write` or `*`.

    - List actions accept `page`, `pageSize`, `sort: [{field, dir}]` and `filter: [{field, op, value}]`.

    - Monetary amounts are decimal **strings** (e.g. `"121.0000"`), never floats.

    - Errors share one envelope: `{ "error": { "code", "message", "requestId", "key?", "params?", "fieldErrors?" } }`; `key` is a stable identifier of the message for translation, with its values in `params`.

    - Country-specific compliance endpoints are namespaced by jurisdiction (e.g. `/v1/declarations/lt/...`)

    and return 422 unless the company is registered in that country (set at `account/companies/create`).


    ## Idempotency

    Send an `Idempotency-Key` header on any mutating call. Retries replay the original response

    (marked with `x-idempotent-replay: true`); reusing a key with a different payload returns 422.


    ## Rate limits

    300 requests/min per API key by default. 429 responses include a `retry-after` header.


    ## Webhooks

    Subscribe via `webhooks/subscriptions/create`. Deliveries are HMAC-signed

    (`x-nordlet-signature-v2: t=,v1=.">`, plus the original

    `x-nordlet-signature: sha256=`) and retried for about 24 hours. A subscription is paused, and its owners

    e-mailed, after 5 events in a row could not be delivered. Every event type and its envelope

    (`{ id, version, companyId, eventType, createdAt, data }`) are listed under `x-webhooks`.


    Guides - getting started, SDKs, conventions, bank imports, migrating from another system, EU VAT,

    revenue recognition, consolidation - live at .'
servers:
- url: https://api.nordlet.com
  description: Production
security:
- apiKey: []
tags:
- name: Audit
paths:
  /v1/audit/list:
    post:
      tags:
      - Audit
      description: 'List the audit log of the company: who did what to which entity, with the recorded change in `diff`. Filterable by `action`, `entity`, `entityId`, `actorType` and `actorId`; sortable by `createdAt` and `id`, newest first by default.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                page:
                  default: 1
                  type: integer
                  minimum: 1
                  maximum: 9007199254740991
                  format: int64
                pageSize:
                  default: 50
                  type: integer
                  minimum: 1
                  maximum: 500
                  format: int64
                sort:
                  maxItems: 3
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^[\s\S]*$
                      dir:
                        default: asc
                        type: string
                        enum:
                        - asc
                        - desc
                    required:
                    - field
                filter:
                  maxItems: 10
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^[\s\S]*$
                      op:
                        type: string
                        enum:
                        - eq
                        - ne
                        - contains
                        - gte
                        - lte
                        - in
                      value:
                        anyOf:
                        - type: string
                          pattern: ^[\s\S]*$
                        - type: number
                        - type: boolean
                        - minItems: 1
                          maxItems: 500
                          type: array
                          items:
                            anyOf:
                            - type: string
                              pattern: ^[\s\S]*$
                            - type: number
                    required:
                    - field
                    - op
                    - value
                totals:
                  description: Numeric fields to sum over every row matching the filter (not only the current page)
                  maxItems: 10
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 64
                    pattern: ^[\s\S]*$
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          format: int64
                        actorType:
                          type: string
                          enum:
                          - user
                          - api_key
                          - system
                        actorId:
                          type:
                          - string
                          - 'null'
                          pattern: ^[\s\S]*$
                        action:
                          type: string
                          pattern: ^[\s\S]*$
                        entity:
                          type: string
                          pattern: ^[\s\S]*$
                        entityId:
                          type:
                          - string
                          - 'null'
                          pattern: ^[\s\S]*$
                        diff: {}
                        createdAt:
                          type: string
                          format: date-time
                          example: '2026-07-01T09:30:00.000Z'
                      required:
                      - id
                      - actorType
                      - actorId
                      - action
                      - entity
                      - entityId
                      - diff
                      - createdAt
                      additionalProperties: false
                  page:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    format: int64
                  pageSize:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    format: int64
                  total:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    format: int64
                  totals:
                    type: object
                    additionalProperties:
                      type: string
                      pattern: ^[\s\S]*$
                    maxProperties: 100
                  totalsByCurrency:
                    description: The requested totals split by currency code, present when the listed records carry a currency
                    type: object
                    additionalProperties:
                      type: object
                      additionalProperties:
                        type: string
                        pattern: ^[\s\S]*$
                      maxProperties: 100
                    maxProperties: 100
                required:
                - rows
                - page
                - pageSize
                - total
                additionalProperties: false
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '400':
          description: Request validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '402':
          description: The trial or the prepaid credit has ended; top up or subscribe to continue
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '403':
          description: The API key lacks the required scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '404':
          description: The requested resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '409':
          description: The request conflicts with the current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '413':
          description: The request body or uploaded file is larger than allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '422':
          description: The request is well-formed but violates a business rule
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          headers:
            X-RateLimit-Limit:
              description: Request budget for the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Remaining:
              description: Requests left in the current window
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            X-RateLimit-Reset:
              description: Seconds until the window resets
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                format: int32
                minimum: 0
                maximum: 2147483647
        '500':
          description: Unexpected server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: auditList
      summary: Audit list
      x-fern-sdk-group-name: audit
      x-fern-sdk-method-name: list
components:
  schemas:
    ErrorResponse:
      type: object
      required:
      - error
      additionalProperties: false
      properties:
        error:
          type: object
          required:
          - code
          - message
          - requestId
          additionalProperties: false
          properties:
            code:
              type: string
              enum:
              - validation
              - unauthorized
              - forbidden
              - not_found
              - conflict
              - idempotency_key_reuse
              - idempotency_in_progress
              - rate_limited
              - payment_required
              - internal
            message:
              type: string
              maxLength: 2000
              pattern: ^[\s\S]*$
            requestId:
              type: string
              maxLength: 64
              pattern: ^[a-zA-Z0-9_-]+$
            fieldErrors:
              type: object
              maxProperties: 100
              additionalProperties:
                type: array
                maxItems: 100
                items:
                  type: string
                  maxLength: 2000
                  pattern: ^[\s\S]*$
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer