Tinvio Nano Classifiers API

Create and manage nano classifiers for line item classification.

Operations 7

GET /api/v1/nano-classifiers List Nano Classifiers #
POST /api/v1/nano-classifiers Create Nano Classifier #
POST /api/v1/nano-classifiers/search Search Nano Classifiers #
DELETE /api/v1/nano-classifiers/{resourceId} Delete Nano Classifier #
GET /api/v1/nano-classifiers/{resourceId} Get Nano Classifier #
PUT /api/v1/nano-classifiers/{resourceId} Update Nano Classifier #
GET /api/v1/nano-classifiers/{resourceId}/options List Nano Classifier Options #

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/tinvio-com:tinvio-com-nano-classifiers-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

tinvio-com-nano-classifiers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tinvio Com Nano Classifiers API
  version: '1.0'
  contact:
    email: build.with@jaz.ai
    name: API Support
    url: https://jaz.ai
  description: 'Operations tagged Nano Classifiers across 2 of this provider''s published API definitions: tinvio-com-openapi-original.yaml, tinvio-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.getjaz.com
tags:
- description: Create and manage nano classifiers for line item classification.
  name: Nano Classifiers
paths:
  /api/v1/nano-classifiers:
    get:
      description: List the organization's nano classifiers, paginated.
      operationId: list-nano-classifiers
      parameters:
      - description: Maximum number of results per page (max 1000).
        in: query
        name: limit
        schema:
          type: integer
          default: 100
      - description: Zero-indexed row offset into the result set.
        in: query
        name: offset
        schema:
          type: integer
          default: 0
      - description: Field to sort by.
        in: query
        name: sortBy
        schema:
          type: string
      - description: Sort direction, ASC or DESC.
        in: query
        name: order
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: List Nano Classifiers
      tags:
      - Nano Classifiers
    post:
      description: Create a nano classifier.
      operationId: create-nano-classifier
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Create Nano Classifier
      tags:
      - Nano Classifiers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNanoClassifierClientRequest'
        description: The nano classifier to create.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/nano-classifiers/search:
    post:
      description: Search nano classifiers with filters, sort, and pagination.
      operationId: search-nano-classifier
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Search Nano Classifiers
      tags:
      - Nano Classifiers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchNanoClassifiersRequest'
        description: Search filters, sort, and pagination.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/nano-classifiers/{resourceId}:
    delete:
      description: Delete the nano classifier.
      operationId: delete-nano-classifier
      parameters:
      - description: Resource ID of the nano classifier.
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Delete Nano Classifier
      tags:
      - Nano Classifiers
    get:
      description: Get a single nano classifier by its resource ID.
      operationId: get-nano-classifier
      parameters:
      - description: Resource ID of the nano classifier.
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Get Nano Classifier
      tags:
      - Nano Classifiers
    put:
      description: Update an existing nano classifier.
      operationId: update-nano-classifier
      parameters:
      - description: Resource ID of the nano classifier.
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Update Nano Classifier
      tags:
      - Nano Classifiers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateNanoClassifierClientRequest'
        description: The nano classifier fields to update.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/nano-classifiers/{resourceId}/options:
    get:
      description: 'List the options a nano classifier offers, paginated. Serves both kinds of

        classifier: one with its own classes returns those classes as classResourceId,

        and one drawing on a record list returns records as entityResourceId. Exactly one

        of the two is set on each option, and it is the value to store on the transaction.'
      operationId: list-nano-classifier-options
      parameters:
      - description: Resource ID of the nano classifier.
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      - description: Filter options by name. Matches anywhere in the name and ignores case.
        in: query
        name: search
        schema:
          type: string
      - description: Maximum number of results per page (max 1000).
        in: query
        name: limit
        schema:
          type: integer
          default: 100
      - description: Number of results to skip. This is a row offset, not a page number.
        in: query
        name: offset
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageableResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: List Nano Classifier Options
      tags:
      - Nano Classifiers
    servers:
    - url: https://api.getjaz.com
components:
  schemas:
    ErrorResponse:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/ErrorResponseData'
          description: Error details.
      type: object
    SearchNanoClassifiersRequest:
      properties:
        filter:
          allOf:
          - $ref: '#/components/schemas/NanoClassifiersFilter'
          description: Filter conditions. Combine with and and or for complex queries.
        limit:
          default: 100
          description: Maximum number of results per page (max 1000).
          maximum: 1000
          minimum: 1
          type: integer
        offset:
          default: 0
          description: Zero-indexed row offset into the result set. Sort is required when offset is set.
          maximum: 65536
          minimum: 0
          type: integer
        query:
          description: 'Structured search query using Jaz search operators. Parsed automatically into filter fields.

            Explicit filter fields override query results on conflict.

            Example: "status:unpaid AND $500+".'
          maxLength: 1000
          type: string
        sort:
          allOf:
          - $ref: '#/components/schemas/NanoClassifierSortFilter'
          description: Sort order. Required when offset is set.
      type: object
    BaseResponse:
      properties:
        data:
          description: The response object.
      type: object
    StringExpression:
      properties:
        contains:
          description: Match values containing this substring.
          type: string
        endWith:
          description: Match values ending with this term (case sensitive).
          type: string
        eq:
          description: Match values equal to this.
          type: string
        in:
          description: Match values equal to any of these.
          items:
            type: string
          maxItems: 100
          type: array
        isBlank:
          description: Match records where the field is null or empty ("true") or neither ("false").
          type: string
        isNotBlank:
          description: Match records where the field is neither null nor empty ("true").
          type: string
        isNull:
          description: Match records where the field is null ("true") or not null ("false").
          type: string
        likeIn:
          description: Match values containing any of these substrings.
          items:
            type: string
          maxItems: 100
          type: array
        neq:
          description: Match values not equal to this.
          type: string
        notContains:
          description: Match values not containing this substring.
          type: string
        notEndWith:
          description: Match values not ending with this term (case sensitive).
          type: string
        notStartWith:
          description: Match values not starting with this term (case sensitive).
          type: string
        reg:
          description: Match values containing any of these terms. This is a substring match, not a regular expression, despite the name.
          items:
            type: string
          maxItems: 100
          type: array
        startWith:
          description: Match values starting with this term (case sensitive).
          type: string
      required:
      - in
      - likeIn
      - reg
      type: object
    NanoClassifierSortFilter:
      properties:
        order:
          description: Sort direction, ASC or DESC.
          enum:
          - ASC
          - asc
          - DESC
          - desc
          type: string
        sortBy:
          description: Fields to sort by, in priority order.
          items:
            type: string
          maxItems: 13
          type: array
          uniqueItems: true
      required:
      - order
      - sortBy
      type: object
    ErrorResponseData:
      properties:
        error_type:
          description: Error category, for example validation_error, invalid_request_body, or internal_server_error.
          example: validation_error
          type: string
        errors:
          description: Error messages describing what went wrong.
          items:
            type: string
          type: array
      type: object
    ClassesRequest:
      properties:
        className:
          description: Name of the class.
          type: string
        deleted:
          description: When true, remove the class.
          type: boolean
        resourceId:
          description: Resource ID of the class.
          type: string
      required:
      - className
      type: object
    PageableResponse:
      properties:
        data:
          description: Result rows for the requested page.
        totalElements:
          description: Total number of records matching the query.
          type: integer
        totalPages:
          description: Total number of pages.
          type: integer
      type: object
    NanoClassifiersFilter:
      properties:
        and:
          description: Combine with another filter using AND.
          type: object
        classes:
          allOf:
          - $ref: '#/components/schemas/ClassifierClassFilter'
          description: Filter by class fields.
        not:
          description: Exclude records matching these conditions.
          type: object
        or:
          description: Combine with another filter using OR.
          type: object
        resourceId:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Resource ID of the class.
        type:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Transaction type the classifier applies to.
      type: object
    UpdateNanoClassifierClientRequest:
      properties:
        classes:
          description: Classes available within the classifier. Required unless format draws them from a record list.
          items:
            $ref: '#/components/schemas/ClassesRequest'
          type: array
        format:
          description: 'Where the classes come from. CUSTOM means the classes are typed by hand. Switching to any

            other value retires the existing classes and draws the options from that record list.'
          enum:
          - CUSTOM
          - ALL_CUSTOMERS
          - ALL_SUPPLIERS
          - ALL_CONTACTS
          - ALL_EMPLOYEES
          - ALL_USERS
          type: string
        printable:
          description: 'When true, the classifier appears on printed and PDF documents. Leave it out to keep

            the setting the classifier already has.'
          type: boolean
        resourceId:
          description: Resource ID of the nano classifier, from the URL path.
          type: string
        type:
          description: Transaction type the classifier applies to.
          enum:
          - bill
          - invoice
          type: string
      required:
      - classes
      - resourceId
      type: object
    CreateNanoClassifierClientRequest:
      properties:
        classes:
          description: Classes available within the classifier. Required unless format draws them from a record list.
          items:
            type: string
          type: array
        format:
          default: CUSTOM
          description: 'Where the classes come from. CUSTOM means the classes are typed by hand. Any other value

            draws them from that record list and ignores classes. Defaults to CUSTOM.'
          enum:
          - CUSTOM
          - ALL_CUSTOMERS
          - ALL_SUPPLIERS
          - ALL_CONTACTS
          - ALL_EMPLOYEES
          - ALL_USERS
          type: string
        printable:
          description: When true, the classifier appears on printed and PDF documents.
          type: boolean
        type:
          description: Transaction type the classifier applies to.
          enum:
          - bill
          - invoice
          type: string
      required:
      - classes
      - printable
      - type
      type: object
    ClassifierClassFilter:
      properties:
        className:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by class name.
        resourceId:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Resource ID of the class.
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: Organization API key. Pass it in the x-jk-api-key header on every request.
      in: header
      name: x-jk-api-key
      type: apiKey
x-refined-from:
- tinvio-com-openapi-original.yaml
- tinvio-com-openapi.yml