Tinvio Nano Classifiers API
Create and manage nano classifiers for line item classification.
Create and manage nano classifiers for line item classification.
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/tinvio-com:tinvio-com-nano-classifiers-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: 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