Comenzar

Inicio rápido de API

Comience con las API de Ninja y potencie sus productos de IA con una velocidad, escalabilidad y confiabilidad incomparables.

Aprenda más

Inscripción

Inscríbase en Super.myNinja.ai para empezar a usar nuestras API.

Puedes registrarte gratis o suscribirte a un nivel Ultra o Business. Ultra y Business te brindan acceso ilimitado al campo de juego para experimentar con nuestros programas de LLM emblemáticos, de razonamiento e investigación profunda*.

Cuando esté listo para pasar de la exploración a la ejecución, compre créditos para empezar a crear productos y experiencias de IA para la codificación, la escritura y mucho más.

* Sujeto a umbrales de abuso

Créditos de compra

  • Después de registrarse en Super.myNinja.ai, vaya al panel de la izquierda y haga clic en Icono de API.

    Image of user navigating to the api management page
  • A continuación, vaya a «Suscripción y créditos».

    Image of user navigating to the API keys & credits page
  • Bajo «Tus créditos», hacer clic «Créditos de compra».

    Image of the API credits section in Ninja AI
  • En el «Importe de pago automático» campo, introduce la cantidad que deseas comprar para obtener créditos (mínimo 30$).

    Image of a user setting their credit amount for their auto-pay agreement in Ninja AI
  • En el «Umbral de pago automático» campo, establece el importe límite para que, cuando tu saldo caiga por debajo de este importe, recargaremos el «Importe de pago automático». Esto garantiza que no te quedes sin créditos ni que tu clave de API deje de funcionar (mínimo 25$).

    Image of a user setting their threshold amount for their auto-pay agreement in Ninja AI
  • Selecciona tu método de pago preferido y haz clic «Confirmar y pagar». A continuación, se te redirigirá a la pantalla de facturación de Stripe para completar el pago.

    Image of different payment vendors provided to users when purchasing API credits

Generar una clave de API

  • Después de comprar tus créditos, ve a «Gestiona tus claves de API» sección sobre la Página de claves de API y créditos.

    Image of user navigating to the API keys & credits page
  • Haga clic en el «Crear una nueva clave» botón.

    Image of manage your API keys section in Ninja AI
  • En el «Nombre» campo, introduce un nombre para tu clave (p. ej., Clave de producción) y, a continuación, haga clic «Crear clave».

    Image of naming process for an API key generated by Ninja AI
  • Una vez que se genere la clave, cópialo y guárdala en un lugar seguro, ya que cualquier persona con acceso puede usarla. Si es necesario, puede regenerarse una nueva clave.

    Image of an API key generated with Ninja AI

Uso de las API Ninja

Vista general

URL base:
https://api.myninja.ai/v1

Autenticación:
Todas las solicitudes requieren que se pase una clave de API en el encabezado de la siguiente manera: ¿dónde <token-key>está tu token de autenticación?
Autorización: Portador <token-key>

Punto final:
PUBLICAR /chat/finalizaciones
Este punto final acepta solicitudes de chat y transmite las respuestas según el modelo especificado.

Modelos:
Los modelos disponibles actualmente incluyen:
ninja-deep research
ninja-super-agent: turbo
ninja-superagente: apex
Superagente ninja: razonamiento

Estos modelos se pueden seleccionar proporcionando el modelo parámetro en el cuerpo de su solicitud.

Formato de solicitud

La API Ninja sigue las Especificación de la API OpenAI de cerca. El objeto JSON de la solicitud contiene:

modelo (cadena):
El identificador del modelo que se va a utilizar (p. ej., «investigación profunda de ninjas»).

mensajes (matriz):
Conjunto de objetos de mensaje. Cada objeto sigue el formato:

JSON

{ "role": "user", "content": "Your query here." }
  

flujo (booleano):
Cuando se establece en cierto, la API responde con una respuesta de streaming.

stream_options (objeto):
Opciones adicionales para la transmisión, como «include_usage»: verdadero para incluir detalles sobre el uso de los tokens.

extra_headers (objeto):
Cualquier encabezado adicional requerido por la API Ninja (ninguno en este momento)

Ejemplo de solicitud (json)

JSON

{
  "model": "ninja-super-agent:turbo",
  "messages": [
    {
      "role": "user",
      "content": "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
    }
  ],
  "stream": true,
  "stream_options": {
    "include_usage": true
  }
}
  

Respuesta

La API devuelve un flujo de ChateFination Chunk objetos. Cada fragmento puede contener:

Contenido:
El texto de la finalización, que puede incluir pasos de razonamiento envueltos en XML.

Citas:
Una lista de URL que respaldan el razonamiento proporcionado.

Información de uso:
Estadísticas de uso de tokens si «include_usage»: verdadero se especificó.

El código del cliente puede procesar estos fragmentos para mostrar una respuesta completa que incluya:

Pasos de razonamiento: Extraído y formateado a partir de segmentos XML.

Citas: Se muestra como una lista numerada.

Estadísticas de uso: Mostrando los tokens de entrada y salida.

Ejemplos de código de muestra

Python

import time
import xml.etree.ElementTree as ET
from uuid import uuid4
from openai import OpenAI, Stream
from openai.types import CompletionUsage
from openai.types.chat import ChatCompletionChunk

# Initialize the OpenAI client with your API key and base URL.
client = OpenAI(api_key="PUT_YOUR_API_KEY_HERE", base_url="https://api.myninja.ai/v1")

def print_reasoning_step(reasoning_step: str):
    step = ET.fromstring(reasoning_step)
    print(f"[{step.find('header').text}]\n{step.find('content').text}\n")

def print_citations(citations: list[str]):
    width = len(str(len(citations)))
    print("[Citations]")
    for n, citation in enumerate(citations, 1):
        print(f"{n:{width}}. {citation}")
    print()

def print_content(content: str):
    print(content, end="", flush=True)

def print_usage(usage: CompletionUsage):
    print(
        f"\n\n| Input tokens: {usage.prompt_tokens:,} "
        f"| Output tokens: {usage.completion_tokens:,} ",
        end="",
        flush=True,
    )

def main():
    query = (
        "I am an advanced snowboarder and want a good all-mountain snowboard and new boots and "
        "I'd like to spend no more than $1000 all in. Also look at trends and reviews and give "
        "me options that are currently trendy and cool and have high reviews."
    )

    start_time = time.time()
    
    response: Stream[ChatCompletionChunk] = client.chat.completions.create(
        model="ninja-deep-research",
        messages=[
            {"role": "user", "content": query},
        ],
        stream=True,
        stream_options={
            "include_usage": True,
        },
    )

    for chunk in response:
        for choice in chunk.choices:
            if content := choice.delta.content:
                if content.startswith("<step>"):
                    print_reasoning_step(content)
                else:
                    print_content(content)

        if citations := chunk.model_extra.get("citations"):
            print_citations(citations)
        elif usage := chunk.usage:
            print_usage(usage)

    elapsed_time = time.time() - start_time
    print(f"| Elapsed: {elapsed_time:.1f} seconds |")

if __name__ == "__main__":
    main()
  
cURL

curl -N https://api.myninja.ai/v1/chat/completions \
  -H "Authorization: Bearer PUT_YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ninja-super-agent:turbo",
    "messages": [
      {
        "role": "user",
        "content": "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
      }
    ],
    "stream": true,
    "stream_options": {
      "include_usage": true
    }
  }'
Java

HttpResponse<String> response = Unirest.post("https://api.myninja.ai/v1/chat/completions")
  .header("Authorization", "Bearer PUT_YOUR_API_KEY_HERE")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
  
JavaScript

const options = {
  method: 'POST',
  headers: {
    Authorization: 'Bearer PUT_YOUR_API_KEY_HERE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: "ninja-super-agent:turbo",
    messages: [
      {
        role: "user",
        content: "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
      }
    ],
    stream: true,
    stream_options: {
      include_usage: true
    }
  })
};

fetch('https://api.myninja.ai/v1/chat/completions', options)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));
  
Go

package main

import (
  "bufio"
  "bytes"
  "fmt"
  "io"
  "log"
  "net/http"
)

func main() {
  url := "https://api.myninja.ai/v1/chat/completions"

  jsonStr := ` + "`" + `{
    "model": "ninja-super-agent:turbo",
    "messages": [
      {
        "role": "user",
        "content": "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?"
      }
    ],
    "stream": true,
    "stream_options": {
      "include_usage": true
    }
  }` + "`" + `

  req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(jsonStr)))
  if err != nil {
    log.Fatalf("Error creating request: %v", err)
  }

  req.Header.Set("Authorization", "Bearer PUT_YOUR_API_KEY_HERE")
  req.Header.Set("Content-Type", "application/json")

  client := &http.Client{}
  resp, err := client.Do(req)
  if err != nil {
    log.Fatalf("Error sending request: %v", err)
  }
  defer resp.Body.Close()

  if resp.StatusCode != http.StatusOK {
    log.Fatalf("Request failed with status: %s", resp.Status)
  }

  reader := bufio.NewReader(resp.Body)
  for {
    line, err := reader.ReadBytes('\n')
    if err != nil {
      if err == io.EOF {
        break
      }
      log.Fatalf("Error reading response: %v", err)
    }
    fmt.Print(string(line))
  }
}
  
C#

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

namespace NinjaApiExample
{
  class Program
  {
    static async Task Main(string[] args)
    {
      var url = "https://api.myninja.ai/v1/chat/completions";
      var apiKey = "PUT_YOUR_API_KEY_HERE";

      using var client = new HttpClient();
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

      var payload = new
      {
        model = "ninja-super-agent:turbo",
        messages = new[]
        {
          new { role = "user", content = "What is the significance of birefringence in materials science? Can you provide a detailed explanation including its applications and how it is measured?" }
        },
        stream = true,
        stream_options = new { include_usage = true }
      };

      var jsonPayload = JsonSerializer.Serialize(payload);
      var content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

      try
      {
        var response = await client.PostAsync(url, content);
        response.EnsureSuccessStatusCode();

        var responseBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine(responseBody);
      }
      catch (HttpRequestException e)
      {
        Console.WriteLine("Request error: " + e.Message);
      }
    }
  }
}
  

Fijación

Modo

Precio de entrada/ por M tokens

Precio de producción/ por M tokens

Precio/ tarea

Codificador Qwen 3 480V (Cerebras)

Predeterminado para Ninja Cline AI Studio

1,50$

Modo estándar

Equilibrio entre calidad y velocidad
Predeterminado:
GLM 4.6
Deep Coder:
GLM 4.6

1,00$

Modo complejo

LLM de la más alta calidad para tareas complejas
Predeterminado:
Soneto 4.5
Deep Coder
Soneto 4.5

1,50$

Modo rápido

El agente general más rápido del mundo
Predeterminado:
GLM 4,6*
Investigación profunda:
Qwen Model Logo
Qwen 3—235 B*
Deep Coder:
GLM 4.6
*Desarrollado por Cerebras
Cerebras logo

1,50$

Modo

Precio de entrada/ por M tokens

Precio de producción/ por M tokens

Precio/ tarea

Codificador Qwen 3 480V (Cerebras)

Predeterminado para Ninja Cline AI Studio

3,75$

3,75$

Modo estándar

Equilibrio entre calidad y velocidad
Predeterminado:
GLM 4.6
Deep Coder:
GLM 4.6

1,50$

1,50$

Modo complejo

LLM de la más alta calidad para tareas complejas
Predeterminado:
Soneto 4.5
Deep Coder
Soneto 4.5

4,50$

22,50$

Modo rápido

El agente general más rápido del mundo
Predeterminado:
GLM 4,6*
Investigación profunda:
Qwen Model Logo
Qwen 3—235 B*
Deep Coder:
GLM 4.6
*Desarrollado por Cerebras
Cerebras logo

3,75$

3,75$

modelo

Precio de entrada/ por M tokens

Precio de producción/ por M tokens

Turbo 1.0

0,11$

0,42$

Apex 1.0

0,88$

7,00$

Razonamiento 2.0

0,38$

1,53$

Investigación profunda 2.0

1,40$

5,60$

Límites de tarifas

Ninja AI impone límites de velocidad en las solicitudes de inferencia por modelo para garantizar que los desarrolladores puedan probar la inferencia más rápida.

modelo

Solicitud por minuto (RPM)

Turbo 1.0

50

Apex 1.0

20

Razonamiento 2.0

30

Investigación profunda 2.0

5

Preguntas frecuentes

Esto es lo que necesita saber sobre la API de Ninja en función de lo que más nos preguntan.

¿Cómo puedo aumentar el límite y el importe de mi pago automático?

  • En Ninja, ve al panel de la izquierda y haz clic en Icono de administración de API.

  • Bajo «Tus créditos», hacer clic «Administrar créditos».

  • En el «Importe de pago automático» campo, introduce la cantidad que deseas aumentar para obtener créditos (mínimo 30$).

  • En el «Umbral de pago automático» campo, edita el importe límite por el que, cuando tu saldo caiga por debajo de este importe, recargaremos el «Importe de pago automático». Esto garantiza que no te quedes sin créditos ni que tu clave de API deje de funcionar (mínimo 25 dólares).

  • Haga clic «Guardar cambios» para confirmar.

¿Cómo puedo cancelar mi acuerdo de pago automático?

  • En Ninja, ve al panel de la izquierda y haz clic en Icono de administración de API.

  • Seleccione «Claves y créditos de API» luego ve a «Tus créditos» sección.

  • Bajo «Tus créditos», hacer clic «Más opciones».

  • Seleccione «Cancelar el pago automático de créditos»(mínimo 30$).

  • Haga clic «Eliminar pago automático» para confirmar.

¿Cómo elimino una clave de API?

  • En Ninja, ve al panel de la izquierda y haz clic en Icono de administración de API.

  • Seleccione «Claves y créditos de API», luego ve a «Claves de API».

  • Busca tu clave de API y selecciona el icono de la papelera a la derecha.

  • Haga clic «Eliminar clave de API» para confirmar.

¿Cómo puedo ver el uso de cada solicitud de API?

  • En Ninja, ve al panel de la izquierda y haz clic en Icono de administración de API.

  • A continuación, haga clic «Uso de API».

  • En el «Uso de API» en esta página, verás una tabla que muestra los siguientes detalles de cada API:

    • Nombre clave

    • modelo

    • Tokens de entrada y salida

    • Coste de entrada y salida

    • Marca de tiempo para la solicitud

    • Coste total