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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/tttech-usage-reports-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
openapi: 3.2.0
info:
version: 3.1.0
description: 'Nerve Management System API to manage: -labels -nodes -workloads -notifications -capabilities'
title: Nerve Management System USAGE REPORTS API
contact:
name: Nerve support
email: support@tttech-industrial.com
servers:
- url: https://trynerve1.nerve.cloud
security:
- sessionId: []
tags:
- name: USAGE_REPORTS
description: The operations to manage usage reports
paths:
/nerve/usage-reports/single:
get:
summary: Retrieve single usage report
description: Retrieve a single usage report for a specific month and year
operationId: get_single_usage_report
tags:
- USAGE_REPORTS
parameters:
- name: month
in: query
required: true
description: The month for which the usage report is requested
example: August
schema:
type: string
description: The month to which the usage report applies
example: August
enum:
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
- name: year
in: query
required: true
description: The year for which the usage report is requested
example: '2024'
schema:
type: string
pattern: ^[0-9]{4}$
minLength: 0
maxLength: 4
responses:
'200':
description: Successful operation. Selected usage report returned.
content:
application/json:
schema:
description: Usage report object containing the report details for single month
type: object
additionalProperties: false
properties:
name:
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
description: Name of the report file
example: August_2024_usage_report.yaml
minLength: 0
maxLength: 1001
relativePath:
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
description: The relative path where the report is stored
example: nerve_usage/storage/usage_reports/August_2024_usage_report.yaml
minLength: 0
maxLength: 1001
month:
type: string
description: The month to which the usage report applies
example: August
enum:
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
year:
type: string
description: The year to which the usage report applies
example: '2024'
pattern: ^[0-9]{4}$
minLength: 0
maxLength: 4
dateOfReport:
type: string
description: Date when the report was generated
format: date-time
example: '2024-08-01T00:00:00.000Z'
minLength: 0
maxLength: 24
isComplete:
type: boolean
description: Status indicating if the report is complete
example: false
_id:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
example:
name: September_2024_usage_report.yaml
relativePath: nerve_usage/storage/usage_reports/September_2024_usage_report.yaml
month: September
year: '2024'
dateOfReport: '2024-09-01T00:00:00.000Z'
isComplete: false
_id: 66daa628a66040a284c1b4e5
'400':
description: Error response when generating the usage report failed
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: usage_report_001
httpCode: '400'
message: Something went wrong during usage report generation.
'403':
description: You are not authorized to perform this operation
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
examples:
not_authorized:
value:
errorCode: '00003'
httpCode: '403'
message: You are not authorized
'500':
description: Error response when generating the usage report failed because date can not be retrieved.
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: usage_report_007
httpCode: '500'
message: Can't retrieve date when instance is spawned.
/nerve/usage-reports:
get:
summary: Retrieve usage reports
description: List all available usage reports or filter them by search term or filter criteria
operationId: get_usage_reports
tags:
- USAGE_REPORTS
parameters:
- name: search
in: query
required: false
description: Search term for filtering usage reports
schema:
description: Number of items in result set when searching is applied
type: string
default: ''
minLength: 0
maxLength: 1000
pattern: ^[\x20-\x7E\t\n\r]*$
- name: filter
in: query
required: false
description: JSON-encoded filter criteria for usage reports
schema:
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
minLength: 0
maxLength: 1001
description: Search term for filtering usage reports
responses:
'200':
description: Successful operation. List of usage reports returned.
content:
application/json:
schema:
description: List of usage reports returned.
type: object
additionalProperties: false
properties:
data:
description: List of usage reports
type: array
minItems: 0
maxItems: 1001
items:
description: Usage report object containing the report details for single month
type: object
additionalProperties: false
properties:
name:
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
description: Name of the report file
example: August_2024_usage_report.yaml
minLength: 0
maxLength: 1001
relativePath:
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
description: The relative path where the report is stored
example: nerve_usage/storage/usage_reports/August_2024_usage_report.yaml
minLength: 0
maxLength: 1001
month:
type: string
description: The month to which the usage report applies
example: August
enum:
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
year:
type: string
description: The year to which the usage report applies
example: '2024'
pattern: ^[0-9]{4}$
minLength: 0
maxLength: 4
dateOfReport:
type: string
description: Date when the report was generated
format: date-time
example: '2024-08-01T00:00:00.000Z'
minLength: 0
maxLength: 24
isComplete:
type: boolean
description: Status indicating if the report is complete
example: false
_id:
description: ID (from Management System) of the entry
type: string
pattern: ^[0-9a-fA-F]{24}$
minLength: 24
maxLength: 24
example:
name: September_2024_usage_report.yaml
relativePath: nerve_usage/storage/usage_reports/September_2024_usage_report.yaml
month: September
year: '2024'
dateOfReport: '2024-09-01T00:00:00.000Z'
isComplete: false
_id: 66daa628a66040a284c1b4e5
example:
data:
- name: August_2024_usage_report.yaml
relativePath: nerve_usage/storage/usage_reports/August_2024_usage_report.yaml
month: August
year: '2024'
dateOfReport: '2024-08-01T00:00:00.000Z'
isComplete: false
_id: 66c87a4a509470041120e137
- name: September_2024_usage_report.yaml
relativePath: nerve_usage/storage/usage_reports/September_2024_usage_report.yaml
month: September
year: '2024'
dateOfReport: '2024-08-01T00:00:00.000Z'
isComplete: false
_id: 66c87a4a509470041120e138
'400':
description: Route params validation error
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: '00006'
httpCode: '400'
message: Route params validation error
'403':
description: You are not authorized to perform this operation
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
examples:
not_authorized:
value:
errorCode: '00003'
httpCode: '403'
message: You are not authorized
'500':
description: Internal server error
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
httpCode: '500'
errorCode: nerve_dna_006
message: Operation failed for unknown reason.
/nerve/usage-reports/configuration:
get:
summary: Retrieve usage reports configuration
description: Get the current configuration of Usage Reports
operationId: get_configuration
tags:
- USAGE_REPORTS
responses:
'200':
description: Get the current configuration of Usage Reports
content:
application/json:
schema:
description: The current configuration of Usage Reports
type: object
properties:
tttechEmail:
description: The email address to notify TTTech
type: string
format: email
example: nerve-billing@tttech-industrial.com
pattern: ^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$
minLength: 4
maxLength: 254
gpgPublicKey:
description: The GPG public key to encrypt the email
type: string
example: '-----BEGIN PGP PUBLIC KEY BLOCK--'
pattern: ^[\s\S]*$
minLength: 0
maxLength: 1001
notifyTTTech:
description: Should TTTech be notified
type: boolean
example: true
example:
tttechEmail: nerve-billing@tttech-industrial.com
gpgPublicKey: '-----BEGIN PGP PUBLIC KEY BLOCK--'
'400':
description: Error response when updating usage report configuration
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: usage_report_005
httpCode: '400'
message: Something went wrong during configuration parameters update.
'403':
description: You are not authorized to perform this operation
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
examples:
not_authorized:
value:
errorCode: '00003'
httpCode: '403'
message: You are not authorized
post:
summary: Update Usage Reports Configuration
description: Update the configuration of Usage Reports
operationId: update_configuration
tags:
- USAGE_REPORTS
requestBody:
required: true
content:
application/json:
schema:
description: The updated configuration of Usage Reports
type: object
additionalProperties: false
required:
- notifyTTTech
properties:
notifyTTTech:
description: Should TTTech be notified
type: boolean
example: true
responses:
'200':
description: Update the configuration of Usage Reports
content:
application/json:
schema:
description: The updated configuration of Usage Reports
type: object
additionalProperties: false
properties:
updated:
description: The configuration was updated
type: boolean
example: true
example:
updated: true
'400':
description: Error response when updating usage report configuration
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
errorCode: usage_report_005
httpCode: '400'
message: Something went wrong during configuration parameters update.
'403':
description: You are not authorized to perform this operation
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
examples:
not_authorized:
value:
errorCode: '00003'
httpCode: '403'
message: You are not authorized
'500':
description: Internal server error
content:
application/json:
schema:
description: Generic error response returned from the server in case of a failed operation.
properties:
errorCode:
description: String that is used as a key for appropriate translation on the front-end application.
type: string
minLength: 4
maxLength: 100
pattern: ^[a-zA-Z0-9_-]*$
httpCode:
description: Http error code assigned to the error.
type: string
minLength: 3
maxLength: 3
pattern: ^[0-9]*$
message:
description: Error message in English.
minLength: 5
maxLength: 512
type: string
pattern: ^[\x20-\x7E\t\n\r]*$
example:
httpCode: '500'
errorCode: nerve_dna_006
message: Operation failed for unknown reason.
components:
securitySchemes:
sessionId:
type: apiKey
in: header
name: sessionId
basicAuth:
type: http
scheme: basic
cookieAuth:
type: apiKey
in: header
name: cookie
bearerAuth:
type: http
scheme: bearer