{"openapi":"3.1.0","info":{"title":"Novita AI (BYOK) API","version":"0.1.0","description":"Novita AI (BYOK) lets an AI assistant read your own Novita AI data through the Novita AI API with a key you supply (Novita API key). Read-only: 10 tools (get_balance, list_monthly_bills, list_quotas, list_llm_models, list_gpu_clusters, list_gpu_products, list_gpu_instances, get_gpu_instance, list_serverless_endpoints, get_serverless_endpoint). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-novita.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-novita/docs"},"termsOfService":"https://connectorbay.com/byok-novita/terms"},"servers":[{"url":"https://byok-novita.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-novita/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_balance":{"post":{"operationId":"get_balance","summary":"Show the account's available credit, cash balance, credit limit, pending charges and outstanding invoices. Amounts are s","description":"Show the account's available credit, cash balance, credit limit, pending charges and outstanding invoices. Amounts are strings in units of 1/10000 USD (10000 = 1 US dollar). Use for \"How much credit do I have left on Novita\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_balanceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_monthly_bills":{"post":{"operationId":"list_monthly_bills","summary":"List monthly bills with total, voucher and cash amounts (units of 1/10000 USD), status and billing period. Available fro","description":"List monthly bills with total, voucher and cash amounts (units of 1/10000 USD), status and billing period. Available from 2025-10. Use for \"What were my Novita monthly bills\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_month":{"anyOf":[{"maxLength":7,"type":"string"},{"type":"null"}],"default":null,"description":"First month to return as YYYY-MM, for example 2025-10.","title":"Start Month"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":12,"description":"Items per page.","title":"Page Size"}},"title":"list_monthly_billsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_quotas":{"post":{"operationId":"list_quotas","summary":"List the account's rate-limit quotas (RPM, TPM, IPM) per model or product with current and default values and tier limit","description":"List the account's rate-limit quotas (RPM, TPM, IPM) per model or product with current and default values and tier limits. Use for \"What are my Novita rate limits for deepseek models\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"modal":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Quota modality, for example llm or image.","title":"Modal"},"quota_type":{"anyOf":[{"enum":["RPM","TPM","IPM"],"type":"string"},{"type":"null"}],"default":null,"description":"Quota type: RPM, TPM or IPM.","title":"Quota Type"},"quota_object":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Model id such as 'deepseek/deepseek-v3' (fuzzy match); empty for all.","title":"Quota Object"}},"title":"list_quotasArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_llm_models":{"post":{"operationId":"list_llm_models","summary":"List the LLM models available through Novita's OpenAI-compatible API with title, context size and token prices per milli","description":"List the LLM models available through Novita's OpenAI-compatible API with title, context size and token prices per million tokens. Use for \"Which LLM models does Novita offer and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_llm_modelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_gpu_clusters":{"post":{"operationId":"list_gpu_clusters","summary":"List the GPU clusters (regions) with their supported GPU types and whether they support network storage and VPC networks","description":"List the GPU clusters (regions) with their supported GPU types and whether they support network storage and VPC networks. Use for \"Which GPU clusters does Novita have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_gpu_clustersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_gpu_products":{"post":{"operationId":"list_gpu_products","summary":"List GPU products (configurations) with CPU, memory and disk per GPU, availability, stock level and prices for on-demand","description":"List GPU products (configurations) with CPU, memory and disk per GPU, availability, stock level and prices for on-demand, monthly and spot billing. Use for \"Which Novita GPU products are in stock and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cluster_id":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Only products in this cluster id.","title":"Cluster Id"},"gpu_num":{"anyOf":[{"maximum":8,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only products with this many GPUs (0 to 8).","title":"Gpu Num"},"product_name":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Fuzzy match on product name, for example '4090'.","title":"Product Name"},"billing_method":{"anyOf":[{"enum":["onDemand","monthly","spot"],"type":"string"},{"type":"null"}],"default":null,"description":"Billing method.","title":"Billing Method"}},"title":"list_gpu_productsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_gpu_instances":{"post":{"operationId":"list_gpu_instances","summary":"List the account's GPU instances with name, status, cluster, product, GPU count, billing mode and expiry. Access credent","description":"List the account's GPU instances with name, status, cluster, product, GPU count, billing mode and expiry. Access credentials are not returned. Use for \"Which Novita GPU instances are running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"name":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Fuzzy match on instance name.","title":"Name"},"product_name":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"description":"Fuzzy match on product name.","title":"Product Name"},"status":{"anyOf":[{"maxLength":63,"type":"string"},{"type":"null"}],"default":null,"description":"Only instances in this state, for example running, exited or creating.","title":"Status"}},"title":"list_gpu_instancesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_gpu_instance":{"post":{"operationId":"get_gpu_instance","summary":"Get one GPU instance: status, cluster, product, resources, image, billing mode and spot status. Passwords and environmen","description":"Get one GPU instance: status, cluster, product, resources, image, billing mode and spot status. Passwords and environment variables are not returned. Use for \"What is the status of my Novita GPU instance abc123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance_id":{"description":"Instance id from list_gpu_instances.","maxLength":100,"title":"Instance Id","type":"string"}},"required":["instance_id"],"title":"get_gpu_instanceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_serverless_endpoints":{"post":{"operationId":"list_serverless_endpoints","summary":"List the account's serverless GPU endpoints with state, URL, worker limits, GPU count and worker states. Use for \"Which ","description":"List the account's serverless GPU endpoints with state, URL, worker limits, GPU count and worker states. Use for \"Which Novita serverless endpoints do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"}},"title":"list_serverless_endpointsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_serverless_endpoint":{"post":{"operationId":"get_serverless_endpoint","summary":"Get one serverless endpoint: state, URL, worker configuration, scaling policy, image and workers. Use for \"How is my Nov","description":"Get one serverless endpoint: state, URL, worker configuration, scaling policy, image and workers. Use for \"How is my Novita serverless endpoint abc123 scaled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"endpoint_id":{"description":"Endpoint id from list_serverless_endpoints.","maxLength":100,"title":"Endpoint Id","type":"string"}},"required":["endpoint_id"],"title":"get_serverless_endpointArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}