openapi: 3.0.1 info: title: SUTRA API description: >- OpenAI-compatible REST API for the SUTRA family of multilingual large language models from Two AI (Numeric). The SUTRA-V2 model handles instruction-following and conversational tasks across 50+ languages, and the SUTRA-R0 model provides advanced multi-step reasoning. The same chat/completions endpoint serves both models. The documented base URL is https://api.numeric.tech/v2 and is also reachable as https://api.two.ai/v2; the OpenAI SDK can be pointed at this base_url directly. termsOfService: https://www.two.ai contact: name: Two AI (Numeric) url: https://docs.two.ai/docs version: '2.0' servers: - url: https://api.two.ai/v2 description: SUTRA API (two.ai) - url: https://api.numeric.tech/v2 description: SUTRA API (documented Numeric host) security: - bearerAuth: [] tags: - name: Chat description: OpenAI-compatible chat completions across SUTRA models. - name: Models description: List available SUTRA models. paths: /chat/completions: post: operationId: createChatCompletion tags: - Chat summary: Create a chat completion description: >- Generates a model response for the given conversation. Compatible with the OpenAI Chat Completions specification. Set model to a SUTRA model such as sutra-v2 (multilingual instruction/conversation) or sutra-r0 (reasoning). Set stream to true to receive incremental Server-Sent Events; include the Accept: text/event-stream header when streaming. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateChatCompletionRequest' examples: multilingual: summary: Multilingual chat with SUTRA-V2 value: model: sutra-v2 messages: - role: user content: आर्टिफिशियल इंटेलिजेंस क्या है? max_tokens: 1024 temperature: 0.7 reasoning: summary: Structured reasoning with SUTRA-R0 value: model: sutra-r0 messages: - role: user content: >- If Alice is taller than Bob, and Bob is taller than Carol, who is the tallest? max_tokens: 512 temperature: 0.3 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateChatCompletionResponse' text/event-stream: schema: $ref: '#/components/schemas/ChatCompletionChunk' '401': description: Unauthorized - missing or invalid API key. '429': description: Too Many Requests - rate limit exceeded. /models: get: operationId: listModels tags: - Models summary: List models description: >- Lists the SUTRA models currently available to the authenticated account, following the OpenAI models list shape. responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListModelsResponse' '401': description: Unauthorized - missing or invalid API key. components: securitySchemes: bearerAuth: type: http scheme: bearer description: >- Provide your SUTRA API key as a Bearer token in the Authorization header - Authorization: Bearer . schemas: CreateChatCompletionRequest: type: object required: - model - messages properties: model: type: string description: SUTRA model ID (e.g. sutra-v2, sutra-r0). example: sutra-v2 messages: type: array description: A list of messages comprising the conversation so far. items: $ref: '#/components/schemas/ChatMessage' max_tokens: type: integer description: Maximum number of tokens to generate. default: 1024 temperature: type: number format: float description: Sampling temperature between 0 and 1. default: 0.7 stream: type: boolean description: >- If true, partial message deltas are sent as Server-Sent Events. default: false presence_penalty: type: number format: float description: >- Penalizes new tokens based on whether they appear in the text so far, reducing repetition. ChatMessage: type: object required: - role - content properties: role: type: string enum: - system - user - assistant description: The role of the message author. content: type: string description: The contents of the message. CreateChatCompletionResponse: type: object properties: id: type: string object: type: string example: chat.completion created: type: integer format: int64 model: type: string example: sutra-v2 choices: type: array items: $ref: '#/components/schemas/ChatCompletionChoice' usage: $ref: '#/components/schemas/Usage' ChatCompletionChoice: type: object properties: index: type: integer message: $ref: '#/components/schemas/ChatMessage' finish_reason: type: string example: stop ChatCompletionChunk: type: object description: A streamed chunk of a chat completion (Server-Sent Events). properties: id: type: string object: type: string example: chat.completion.chunk created: type: integer format: int64 model: type: string choices: type: array items: type: object properties: index: type: integer delta: $ref: '#/components/schemas/ChatMessage' finish_reason: type: string nullable: true Usage: type: object properties: prompt_tokens: type: integer completion_tokens: type: integer total_tokens: type: integer ListModelsResponse: type: object properties: object: type: string example: list data: type: array items: $ref: '#/components/schemas/Model' Model: type: object properties: id: type: string example: sutra-v2 object: type: string example: model created: type: integer format: int64 owned_by: type: string example: two-ai