{
  "openapi": "3.1.0",
  "info": {
    "title": "NitroTranslate API",
    "description": "Human Translation API",
    "contact": {
      "name": "NitroTranslate",
      "url": "https://nitrotranslate.com"
    },
    "version": "0.2.3",
    "x-guidance": "Human translation. Estimate cost with POST /v1/calculate, then POST /v1/translate. Pay via MPP or an API key."
  },
  "servers": [
    {
      "url": "https://api.nitrotranslate.com",
      "description": "NitroTranslate"
    }
  ],
  "paths": {
    "/v1/account": {
      "get": {
        "summary": "GetAccount",
        "description": "Retrieve account details (balance and reserved funds).",
        "operationId": "AccountService_GetAccount",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "title": "account",
                  "$ref": "#/components/schemas/nitrotranslate.v1.Account"
                }
              }
            }
          }
        }
      }
    },
    "/v1/calculate": {
      "post": {
        "summary": "Calculate",
        "description": "Estimate translation cost per target language.",
        "operationId": "TranslationService_Calculate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/nitrotranslate.v1.CalculateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/nitrotranslate.v1.Calculation"
                  },
                  "title": "calculations"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orders": {
      "get": {
        "summary": "ListOrders",
        "description": "List orders, newest first by default, with pagination.",
        "operationId": "OrderService_ListOrders",
        "parameters": [
          {
            "name": "sort",
            "in": "query",
            "description": "Sort by creation time: \"asc\" or \"desc\" (default).",
            "schema": {
              "type": "string",
              "title": "sort",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index. Defaults to 0.",
            "schema": {
              "type": "integer",
              "title": "page",
              "minimum": 0,
              "format": "int32"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Page size. Defaults to 20.",
            "schema": {
              "type": "integer",
              "title": "per_page",
              "minimum": 1,
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/nitrotranslate.v1.OrderSummary"
                  },
                  "title": "orders"
                }
              }
            }
          }
        }
      }
    },
    "/v1/orders/{id}": {
      "get": {
        "summary": "GetOrder",
        "description": "Fetch a single order with its full details.",
        "operationId": "OrderService_GetOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id path parameter.",
            "required": true,
            "schema": {
              "exclusiveMinimum": 0,
              "type": "string",
              "title": "id",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "title": "order",
                  "$ref": "#/components/schemas/nitrotranslate.v1.Order"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "DeleteOrder",
        "description": "Remove an order (only while in QUEUE status).",
        "operationId": "OrderService_DeleteOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id path parameter.",
            "required": true,
            "schema": {
              "exclusiveMinimum": 0,
              "type": "string",
              "title": "id",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/nitrotranslate.v1.DeleteOrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rates": {
      "get": {
        "summary": "ListRates",
        "description": "Current pricing rates for all supported language pairs.",
        "operationId": "RateService_ListRates",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/nitrotranslate.v1.Rate"
                  },
                  "title": "rates"
                }
              }
            }
          }
        }
      }
    },
    "/v1/translate": {
      "post": {
        "summary": "Translate",
        "description": "Submit content for translation and create orders.",
        "operationId": "TranslationService_Translate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/nitrotranslate.v1.TranslateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/nitrotranslate.v1.TranslateResponse"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required"
          }
        },
        "x-payment-info": {
          "price": {
            "mode": "dynamic",
            "currency": "USD"
          },
          "protocols": [
            {
              "mpp": {
                "method": "stripe",
                "intent": "charge",
                "currency": "usd"
              }
            }
          ],
          "offers": [
            {
              "amount": null,
              "currency": "usd",
              "description": "Human translation, priced per billable character.",
              "intent": "charge",
              "method": "stripe"
            }
          ]
        }
      }
    }
  },
  "components": {
    "schemas": {
      "google.protobuf.Timestamp": {
        "type": "string",
        "format": "date-time"
      },
      "nitrotranslate.v1.Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "format": "int64"
          },
          "balance_overdraft_allowed": {
            "type": "boolean",
            "title": "balance_overdraft_allowed",
            "description": "Whether the account is allowed to go into overdraft."
          },
          "reserved": {
            "type": "number",
            "title": "reserved",
            "format": "double",
            "description": "Funds currently reserved by in-flight orders, in US dollars."
          },
          "balance": {
            "type": "number",
            "title": "balance",
            "format": "double",
            "description": "Available balance, in US dollars."
          }
        },
        "title": "Account",
        "additionalProperties": false,
        "description": "Account balance information."
      },
      "nitrotranslate.v1.Attachment": {
        "type": "object",
        "properties": {
          "image": {
            "type": "string",
            "title": "image",
            "description": "Base64-encoded image bytes."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "MIME type, e.g. \"image/png\"."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Display name of the attachment."
          },
          "weight": {
            "type": "string",
            "title": "weight",
            "format": "int64",
            "description": "Size in kilobytes."
          },
          "size": {
            "type": "string",
            "title": "size",
            "description": "Pixel dimensions, e.g. \"481x315\"."
          }
        },
        "title": "Attachment",
        "additionalProperties": false,
        "description": "An attachment returned on an order comment."
      },
      "nitrotranslate.v1.AttachmentInput": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "title": "type",
            "description": "MIME type, e.g. \"image/png\"."
          },
          "data": {
            "type": "string",
            "title": "data",
            "description": "Base64-encoded image bytes."
          }
        },
        "title": "AttachmentInput",
        "required": [
          "type",
          "data"
        ],
        "additionalProperties": false,
        "description": "Attachment supplied with a translation comment on submission (inbound\n counterpart of the `Attachment` returned on an order)."
      },
      "nitrotranslate.v1.CalculateRequest": {
        "type": "object",
        "properties": {
          "source_language": {
            "type": "string",
            "examples": [
              "en"
            ],
            "title": "source_language",
            "enum": [
              "af",
              "ar",
              "az",
              "be",
              "bg",
              "bn",
              "ca",
              "cs",
              "da",
              "de",
              "el",
              "en",
              "es-ES",
              "es-MX",
              "et",
              "fa",
              "fi",
              "fr",
              "fr-CA",
              "he",
              "hi",
              "hr",
              "hu",
              "hy-AM",
              "id",
              "is",
              "it",
              "ja",
              "ka",
              "kk",
              "ko",
              "ky",
              "lt",
              "lv",
              "ml-IN",
              "ms",
              "my",
              "nl",
              "no",
              "pl",
              "pt-BR",
              "pt-PT",
              "ro",
              "ru",
              "sk",
              "sl",
              "sr",
              "sr-CS",
              "sv-SE",
              "ta",
              "tg",
              "th",
              "tl",
              "tr",
              "te",
              "uk",
              "ur-PK",
              "uz",
              "vi",
              "zh-CN",
              "zh-TW"
            ]
          },
          "target_languages": {
            "type": "array",
            "examples": [
              [
                "de",
                "fr"
              ]
            ],
            "items": {
              "type": "string",
              "examples": [
                [
                  "de",
                  "fr"
                ]
              ],
              "enum": [
                "af",
                "ar",
                "az",
                "be",
                "bg",
                "bn",
                "ca",
                "cs",
                "da",
                "de",
                "el",
                "en",
                "es-ES",
                "es-MX",
                "et",
                "fa",
                "fi",
                "fr",
                "fr-CA",
                "he",
                "hi",
                "hr",
                "hu",
                "hy-AM",
                "id",
                "is",
                "it",
                "ja",
                "ka",
                "kk",
                "ko",
                "ky",
                "lt",
                "lv",
                "ml-IN",
                "ms",
                "my",
                "nl",
                "no",
                "pl",
                "pt-BR",
                "pt-PT",
                "ro",
                "ru",
                "sk",
                "sl",
                "sr",
                "sr-CS",
                "sv-SE",
                "ta",
                "tg",
                "th",
                "tl",
                "tr",
                "te",
                "uk",
                "ur-PK",
                "uz",
                "vi",
                "zh-CN",
                "zh-TW"
              ]
            },
            "title": "target_languages",
            "minItems": 1
          },
          "resource": {
            "title": "resource",
            "$ref": "#/components/schemas/nitrotranslate.v1.Resource"
          }
        },
        "title": "CalculateRequest",
        "required": [
          "source_language",
          "resource"
        ],
        "additionalProperties": false
      },
      "nitrotranslate.v1.CalculateResponse": {
        "type": "object",
        "properties": {
          "calculations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.Calculation"
            },
            "title": "calculations"
          }
        },
        "title": "CalculateResponse",
        "additionalProperties": false
      },
      "nitrotranslate.v1.Calculation": {
        "type": "object",
        "properties": {
          "source_language": {
            "type": "string",
            "title": "source_language"
          },
          "target_language": {
            "type": "string",
            "title": "target_language"
          },
          "volume": {
            "type": "integer",
            "title": "volume",
            "format": "int32",
            "description": "Billable character volume."
          },
          "price": {
            "type": "number",
            "title": "price",
            "format": "double",
            "description": "Estimated price in US dollars."
          }
        },
        "title": "Calculation",
        "additionalProperties": false,
        "description": "Per-language-pair cost estimate produced by Calculate."
      },
      "nitrotranslate.v1.Comment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "format": "int64"
          },
          "time": {
            "title": "time",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "role": {
            "type": "string",
            "examples": [
              "CUSTOMER"
            ],
            "title": "role",
            "enum": [
              "CUSTOMER",
              "TRANSLATOR"
            ],
            "description": "Author role: CUSTOMER or TRANSLATOR."
          },
          "text": {
            "type": "string",
            "title": "text"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.Attachment"
            },
            "title": "attachments"
          }
        },
        "title": "Comment",
        "additionalProperties": false,
        "description": "A comment on an order."
      },
      "nitrotranslate.v1.CommentInput": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "title": "text"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.AttachmentInput"
            },
            "title": "attachments"
          }
        },
        "title": "CommentInput",
        "additionalProperties": false,
        "description": "Comment supplied with a translation request (inbound counterpart of the\n `Comment` returned on an order)."
      },
      "nitrotranslate.v1.Context": {
        "type": "object",
        "properties": {
          "tone": {
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "FORMAL"
            ],
            "title": "tone",
            "enum": [
              "FORMAL",
              "INFORMAL",
              "GUESS"
            ],
            "description": "Tone of voice: FORMAL, INFORMAL, or GUESS (let the translator decide)."
          },
          "limit": {
            "type": [
              "integer",
              "null"
            ],
            "title": "limit",
            "minimum": 0,
            "format": "int32",
            "description": "Maximum number of characters allowed in the translation."
          },
          "category": {
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "IT"
            ],
            "title": "category",
            "enum": [
              "APPS",
              "CRYPTO",
              "CASINO",
              "LEGAL",
              "E_COMMERCE",
              "FINANCE",
              "GAMES",
              "GENERAL",
              "MEDIA",
              "MEDICAL",
              "SCIENCE",
              "IT",
              "TRAVEL"
            ],
            "description": "Subject-matter category guiding terminology."
          }
        },
        "title": "Context",
        "additionalProperties": false,
        "description": "Translation hints applied to an order. All fields are optional."
      },
      "nitrotranslate.v1.DeleteOrderRequest": {
        "type": "object",
        "properties": {
          "id": {
            "exclusiveMinimum": 0,
            "type": "string",
            "title": "id",
            "format": "int64"
          }
        },
        "title": "DeleteOrderRequest",
        "additionalProperties": false
      },
      "nitrotranslate.v1.DeleteOrderResponse": {
        "type": "object",
        "title": "DeleteOrderResponse",
        "additionalProperties": false
      },
      "nitrotranslate.v1.GetAccountRequest": {
        "type": "object",
        "title": "GetAccountRequest",
        "additionalProperties": false
      },
      "nitrotranslate.v1.GetAccountResponse": {
        "type": "object",
        "properties": {
          "account": {
            "title": "account",
            "$ref": "#/components/schemas/nitrotranslate.v1.Account"
          }
        },
        "title": "GetAccountResponse",
        "additionalProperties": false
      },
      "nitrotranslate.v1.GetOrderRequest": {
        "type": "object",
        "properties": {
          "id": {
            "exclusiveMinimum": 0,
            "type": "string",
            "title": "id",
            "format": "int64"
          }
        },
        "title": "GetOrderRequest",
        "additionalProperties": false
      },
      "nitrotranslate.v1.GetOrderResponse": {
        "type": "object",
        "properties": {
          "order": {
            "title": "order",
            "$ref": "#/components/schemas/nitrotranslate.v1.Order"
          }
        },
        "title": "GetOrderResponse",
        "additionalProperties": false
      },
      "nitrotranslate.v1.ListOrdersRequest": {
        "type": "object",
        "properties": {
          "sort": {
            "type": [
              "string",
              "null"
            ],
            "title": "sort",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort by creation time: \"asc\" or \"desc\" (default)."
          },
          "page": {
            "type": [
              "integer",
              "null"
            ],
            "title": "page",
            "minimum": 0,
            "format": "int32",
            "description": "Zero-based page index. Defaults to 0."
          },
          "per_page": {
            "type": [
              "integer",
              "null"
            ],
            "title": "per_page",
            "minimum": 1,
            "format": "int32",
            "description": "Page size. Defaults to 20."
          }
        },
        "title": "ListOrdersRequest",
        "additionalProperties": false
      },
      "nitrotranslate.v1.ListOrdersResponse": {
        "type": "object",
        "properties": {
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.OrderSummary"
            },
            "title": "orders"
          }
        },
        "title": "ListOrdersResponse",
        "additionalProperties": false
      },
      "nitrotranslate.v1.ListRatesRequest": {
        "type": "object",
        "title": "ListRatesRequest",
        "additionalProperties": false
      },
      "nitrotranslate.v1.ListRatesResponse": {
        "type": "object",
        "properties": {
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.Rate"
            },
            "title": "rates"
          }
        },
        "title": "ListRatesResponse",
        "additionalProperties": false
      },
      "nitrotranslate.v1.Order": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "format": "int64"
          },
          "status": {
            "type": "string",
            "examples": [
              "PROGRESS"
            ],
            "title": "status",
            "enum": [
              "QUEUE",
              "PROGRESS",
              "DONE",
              "REVISION"
            ],
            "description": "Lifecycle status: QUEUE (deletable) -> PROGRESS -> DONE. REVISION marks a\n completed order the customer reopened and is pending revision; once rework\n resumes it reports as PROGRESS again (DONE -> REVISION -> PROGRESS -> DONE)."
          },
          "source_language": {
            "type": "string",
            "title": "source_language"
          },
          "target_language": {
            "type": "string",
            "title": "target_language"
          },
          "source_text": {
            "type": "string",
            "title": "source_text"
          },
          "target_text": {
            "type": "string",
            "title": "target_text"
          },
          "snippet": {
            "type": "string",
            "title": "snippet"
          },
          "volume": {
            "type": "integer",
            "title": "volume",
            "format": "int32"
          },
          "price": {
            "type": "number",
            "title": "price",
            "format": "double"
          },
          "resource": {
            "title": "resource",
            "$ref": "#/components/schemas/nitrotranslate.v1.Resource"
          },
          "context": {
            "title": "context",
            "$ref": "#/components/schemas/nitrotranslate.v1.Context"
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.Comment"
            },
            "title": "comments"
          },
          "created_at": {
            "title": "created_at",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "accepted_at": {
            "title": "accepted_at",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "completed_at": {
            "title": "completed_at",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          },
          "translator": {
            "type": [
              "string",
              "null"
            ],
            "title": "translator"
          }
        },
        "title": "Order",
        "required": [
          "status"
        ],
        "additionalProperties": false,
        "description": "A full order record, as returned by GetOrder. Lighter listings (ListOrders,\n Translate) use the OrderSummary projection instead."
      },
      "nitrotranslate.v1.OrderSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "format": "int64"
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "QUEUE"
            ],
            "title": "status",
            "enum": [
              "QUEUE",
              "PROGRESS",
              "DONE",
              "REVISION"
            ],
            "description": "Lifecycle status: QUEUE -> PROGRESS -> DONE. REVISION marks a completed\n order pending revision; active rework reports as PROGRESS again."
          },
          "source_language": {
            "type": "string",
            "title": "source_language"
          },
          "target_language": {
            "type": "string",
            "title": "target_language"
          },
          "snippet": {
            "type": "string",
            "title": "snippet",
            "description": "Short preview of the source text. ListOrders only."
          },
          "volume": {
            "type": "integer",
            "title": "volume",
            "format": "int32",
            "description": "Billable character volume."
          },
          "price": {
            "type": "number",
            "title": "price",
            "format": "double",
            "description": "Order price in US dollars. Always returned."
          },
          "created_at": {
            "title": "created_at",
            "$ref": "#/components/schemas/google.protobuf.Timestamp"
          }
        },
        "title": "OrderSummary",
        "additionalProperties": false,
        "description": "A lightweight order projection shared by the ListOrders and Translate\n responses. `price` is always returned; `status`/`snippet` are set by\n ListOrders only, and proto3 omits them from the Translate JSON when unset.\n Because status is absent on the Translate projection, it is constrained but\n not required here (it is required on the full Order, which always carries it)."
      },
      "nitrotranslate.v1.Rate": {
        "type": "object",
        "properties": {
          "source_language": {
            "type": "string",
            "title": "source_language"
          },
          "target_language": {
            "type": "string",
            "title": "target_language"
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "format": "double",
            "description": "Rate per 1000 characters, in US dollars."
          }
        },
        "title": "Rate",
        "additionalProperties": false,
        "description": "Per-language-pair price produced by ListRates."
      },
      "nitrotranslate.v1.Resource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "examples": [
              "text/plain"
            ],
            "title": "type",
            "enum": [
              "text/plain",
              "text/html",
              "text/x-objcstrings",
              "application/json"
            ],
            "description": "Resource MIME type; one of the supported content types."
          },
          "data": {
            "type": "string",
            "examples": [
              "Hello, world!"
            ],
            "title": "data",
            "description": "The resource payload."
          },
          "metadata": {
            "type": [
              "string",
              "null"
            ],
            "title": "metadata",
            "description": "Optional caller-defined metadata echoed back on the order."
          }
        },
        "title": "Resource",
        "required": [
          "type",
          "data"
        ],
        "additionalProperties": false,
        "description": "The content to be translated. `data` is interpreted according to its MIME\n `type` (e.g. text/plain, text/html, application/json)."
      },
      "nitrotranslate.v1.TranslateRequest": {
        "type": "object",
        "properties": {
          "source_language": {
            "type": "string",
            "examples": [
              "en"
            ],
            "title": "source_language",
            "enum": [
              "af",
              "ar",
              "az",
              "be",
              "bg",
              "bn",
              "ca",
              "cs",
              "da",
              "de",
              "el",
              "en",
              "es-ES",
              "es-MX",
              "et",
              "fa",
              "fi",
              "fr",
              "fr-CA",
              "he",
              "hi",
              "hr",
              "hu",
              "hy-AM",
              "id",
              "is",
              "it",
              "ja",
              "ka",
              "kk",
              "ko",
              "ky",
              "lt",
              "lv",
              "ml-IN",
              "ms",
              "my",
              "nl",
              "no",
              "pl",
              "pt-BR",
              "pt-PT",
              "ro",
              "ru",
              "sk",
              "sl",
              "sr",
              "sr-CS",
              "sv-SE",
              "ta",
              "tg",
              "th",
              "tl",
              "tr",
              "te",
              "uk",
              "ur-PK",
              "uz",
              "vi",
              "zh-CN",
              "zh-TW"
            ]
          },
          "target_languages": {
            "type": "array",
            "examples": [
              [
                "de",
                "fr"
              ]
            ],
            "items": {
              "type": "string",
              "examples": [
                [
                  "de",
                  "fr"
                ]
              ],
              "enum": [
                "af",
                "ar",
                "az",
                "be",
                "bg",
                "bn",
                "ca",
                "cs",
                "da",
                "de",
                "el",
                "en",
                "es-ES",
                "es-MX",
                "et",
                "fa",
                "fi",
                "fr",
                "fr-CA",
                "he",
                "hi",
                "hr",
                "hu",
                "hy-AM",
                "id",
                "is",
                "it",
                "ja",
                "ka",
                "kk",
                "ko",
                "ky",
                "lt",
                "lv",
                "ml-IN",
                "ms",
                "my",
                "nl",
                "no",
                "pl",
                "pt-BR",
                "pt-PT",
                "ro",
                "ru",
                "sk",
                "sl",
                "sr",
                "sr-CS",
                "sv-SE",
                "ta",
                "tg",
                "th",
                "tl",
                "tr",
                "te",
                "uk",
                "ur-PK",
                "uz",
                "vi",
                "zh-CN",
                "zh-TW"
              ]
            },
            "title": "target_languages",
            "minItems": 1
          },
          "resource": {
            "title": "resource",
            "$ref": "#/components/schemas/nitrotranslate.v1.Resource"
          },
          "context": {
            "title": "context",
            "$ref": "#/components/schemas/nitrotranslate.v1.Context"
          },
          "comment": {
            "title": "comment",
            "$ref": "#/components/schemas/nitrotranslate.v1.CommentInput"
          }
        },
        "title": "TranslateRequest",
        "required": [
          "source_language",
          "target_languages",
          "resource"
        ],
        "additionalProperties": false
      },
      "nitrotranslate.v1.TranslateResponse": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "title": "text",
            "description": "The submitted source text."
          },
          "resource": {
            "title": "resource",
            "description": "The submitted resource.",
            "$ref": "#/components/schemas/nitrotranslate.v1.Resource"
          },
          "volume": {
            "type": "integer",
            "title": "volume",
            "format": "int32",
            "description": "Billable character volume."
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/nitrotranslate.v1.OrderSummary"
            },
            "title": "orders",
            "description": "One order per target language."
          }
        },
        "title": "TranslateResponse",
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "description": "Account credentials in the Authorization header (`Bearer <token>` or `Basic <base64>`). Same credentials as BearerAuth/BasicAuth.",
        "name": "Authorization",
        "in": "header"
      },
      "BasicAuth": {
        "type": "http",
        "description": "API key as the username, blank password.",
        "scheme": "basic"
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "opaque"
      },
      "PaymentAuth": {
        "type": "http",
        "description": "MPP payment authorization, sent as `Authorization: Payment <credential>`.",
        "scheme": "payment"
      }
    }
  },
  "security": [
    {
      "BasicAuth": []
    },
    {
      "BearerAuth": []
    },
    {
      "PaymentAuth": []
    },
    {
      "ApiKeyAuth": []
    }
  ]
}
