{
  "openapi": "3.0.3",
  "info": {
    "title": "Oruk Qwen3-ASR API",
    "version": "1.0.0",
    "description": "Multilingual file transcription with Qwen/Qwen3-ASR-1.7B, developed by Qwen / Alibaba and hosted by Oruk on NVIDIA L4. One file per request; maximum 60 seconds decoded duration and 25 MiB. Returns complete text; streaming, timestamps and diarization are not enabled. Direct origin access requires a separately issued Oruk credential. Public paid access is available on RapidAPI and Poe; platform pricing/terms are separate. HF Inference Providers approval remains pending; the SDK proposal is Ready for review in PR https://github.com/huggingface/huggingface.js/pull/2680.",
    "contact": {
      "name": "Oruk",
      "url": "https://oruk.ai",
      "email": "nathan@oruk.ai"
    },
    "x-model-id": "Qwen/Qwen3-ASR-1.7B",
    "x-model-developer": "Qwen / Alibaba",
    "x-model-license": "Apache-2.0",
    "x-api-operator": "Oruk, Inc.",
    "x-public-access-links": {
      "rapidapi": "https://rapidapi.com/NathanRoll/api/oruk-speech-api",
      "poe": "https://poe.com/Oruk-Qwen3-ASR"
    }
  },
  "servers": [
    {
      "url": "https://asia.asr.oruk.ai",
      "description": "Explicit Oruk regional ASR origin; retain region for billing and idempotency."
    }
  ],
  "tags": [
    {
      "name": "Speech recognition",
      "description": "Complete-file audio transcription."
    }
  ],
  "externalDocs": {
    "description": "Production API documentation",
    "url": "https://qwen3-asr.oruk.ai/docs"
  },
  "paths": {
    "/v1/audio/transcriptions": {
      "post": {
        "tags": [
          "Speech recognition"
        ],
        "summary": "Transcribe one audio file",
        "operationId": "transcribeAudio",
        "description": "Upload binary audio using multipart/form-data. Let the HTTP client set Content-Type and its multipart boundary. Unsupported or duplicate fields are rejected. This route does not fetch audio URLs.",
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "model",
                  "file"
                ],
                "additionalProperties": false,
                "properties": {
                  "model": {
                    "type": "string",
                    "enum": [
                      "Qwen/Qwen3-ASR-1.7B"
                    ],
                    "description": "Exactly Qwen/Qwen3-ASR-1.7B."
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "One binary audio file, maximum 25 MiB (26,214,400 bytes) and 60 seconds decoded duration. Audio URLs and JSON upload wrappers are not supported by the general origin route."
                  },
                  "language": {
                    "type": "string",
                    "pattern": "^[a-z]{2,3}$",
                    "description": "Optional lowercase ISO language code; omit for automatic detection."
                  },
                  "prompt": {
                    "type": "string",
                    "maxLength": 1000,
                    "description": "Optional transcription context. Control tokens such as <| and <asr_text> are rejected."
                  },
                  "response_format": {
                    "type": "string",
                    "enum": [
                      "json",
                      "text"
                    ],
                    "default": "json",
                    "description": "json returns an object with text; text returns a plain transcript."
                  },
                  "temperature": {
                    "type": "number",
                    "enum": [
                      0
                    ],
                    "default": 0,
                    "description": "Only deterministic temperature zero is enabled."
                  },
                  "stream": {
                    "type": "boolean",
                    "enum": [
                      false
                    ],
                    "default": false,
                    "description": "Must be false. This deployment returns a complete file transcript; streaming is not enabled."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Complete transcript. The response media type follows response_format.",
            "headers": {
              "Inference-Id": {
                "description": "Request UUID generated by the Oruk gateway.",
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "example": {
                  "text": "Your transcript appears here."
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                },
                "example": "Your transcript appears here."
              }
            }
          },
          "400": {
            "description": "Invalid audio, unsupported model/options, duplicate fields or invalid parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "409": {
            "description": "Idempotency key has already been used; the original transcript is not retained.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "413": {
            "description": "Upload exceeds 25 MiB or decoded audio exceeds 60 seconds.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "429": {
            "description": "Inference capacity is busy; retry with backoff.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "502": {
            "description": "Model engine unavailable or returned an invalid response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "504": {
            "description": "Model engine timed out.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        },
        "x-max-audio-seconds": 60,
        "x-max-file-bytes": 26214400
      }
    },
    "/v1/models": {
      "get": {
        "summary": "List the model served by this origin",
        "operationId": "listModels",
        "description": "Requires the same Oruk bearer credential as transcription. Returns the current model, decoded-duration limit and configured direct-origin rate.",
        "responses": {
          "200": {
            "description": "Available model catalog.",
            "headers": {
              "Inference-Id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "object",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "object": {
                      "type": "string",
                      "enum": [
                        "list"
                      ]
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "id",
                          "object",
                          "created",
                          "owned_by",
                          "served_by",
                          "task",
                          "max_audio_seconds",
                          "pricing"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string",
                            "enum": [
                              "Qwen/Qwen3-ASR-1.7B"
                            ]
                          },
                          "object": {
                            "type": "string",
                            "enum": [
                              "model"
                            ]
                          },
                          "created": {
                            "type": "integer",
                            "format": "int64",
                            "description": "Model creation time as a Unix timestamp."
                          },
                          "owned_by": {
                            "type": "string",
                            "enum": [
                              "Qwen"
                            ]
                          },
                          "served_by": {
                            "type": "string",
                            "enum": [
                              "Oruk"
                            ]
                          },
                          "task": {
                            "type": "string",
                            "enum": [
                              "automatic-speech-recognition"
                            ]
                          },
                          "max_audio_seconds": {
                            "type": "integer",
                            "minimum": 1
                          },
                          "pricing": {
                            "type": "object",
                            "description": "Configured direct-origin rate. Marketplace charges are defined separately by each platform.",
                            "required": [
                              "unit",
                              "nano_usd",
                              "usd"
                            ],
                            "additionalProperties": false,
                            "properties": {
                              "unit": {
                                "type": "string",
                                "enum": [
                                  "audio_minute"
                                ]
                              },
                              "nano_usd": {
                                "type": "integer",
                                "format": "int64",
                                "minimum": 0
                              },
                              "usd": {
                                "type": "string",
                                "pattern": "^\\d+\\.\\d{9}$"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid Oruk bearer credential."
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Supply a separately issued Oruk key. Marketplace consumers use their marketplace key at the marketplace URL; backend credentials are configured privately by the distributor."
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ]
}