Commencez

Démarrage rapide de l'API

Démarrez avec les API de Ninja et optimisez vos produits d'IA avec une vitesse, une évolutivité et une fiabilité inégalées.

En savoir plus

Inscription

Inscrivez-vous sur Super MyNinja.ai pour commencer à utiliser nos API.

Vous pouvez vous inscrire gratuitement ou souscrire à un niveau Ultra ou Business. Ultra et Business vous offrent un accès illimité au terrain de jeu pour expérimenter nos LLMs phares, axés sur le raisonnement et la recherche approfondie*.

Lorsque vous êtes prêt à passer de l'exploration à l'exécution, achetez des crédits pour commencer à créer des produits et des expériences d'IA pour le codage, l'écriture et bien plus encore.

* Sous réserve de seuils d'abus

Crédits d'achat

  • Après vous être inscrit à Super MyNinja.ai, allez dans le panneau de gauche et cliquez sur Icône de l'API.

    Image of user navigating to the api management page
  • Ensuite, allez à « Abonnement et crédits ».

    Image of user navigating to the API keys & credits page
  • En dessous « Vos crédits » cliquez sur « Crédits d'achat ».

    Image of the API credits section in Ninja AI
  • Dans le « Montant du paiement automatique » champ, entrez le montant que vous souhaitez acheter pour obtenir des crédits (minimum de 30$).

    Image of a user setting their credit amount for their auto-pay agreement in Ninja AI
  • Dans le « Seuil de paiement automatique » champ, définissez le seuil auquel, lorsque votre solde tombe en dessous de ce montant, nous rechargerons le « Montant du paiement automatique ». Cela garantit que vous ne serez pas à court de crédits ou que votre clé API ne cessera de fonctionner (minimum de 25$).

    Image of a user setting their threshold amount for their auto-pay agreement in Ninja AI
  • Sélectionnez votre mode de paiement préféré et cliquez sur « Confirmez et payez. » Vous serez ensuite redirigé vers un écran de facturation Stripe pour terminer votre paiement.

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

Générer une clé API

  • Après avoir acheté vos crédits, rendez-vous sur « Gérez vos clés d'API » section sur le Page des clés et des crédits d'API.

    Image of user navigating to the API keys & credits page
  • Cliquez sur « Créer une nouvelle clé » bouton.

    Image of manage your API keys section in Ninja AI
  • Dans le « Nom » champ, entrez un nom pour votre clé (par exemple, Clé de production), puis cliquez sur « Créer une clé ».

    Image of naming process for an API key generated by Ninja AI
  • Une fois votre clé générée, copiez-le et enregistrez-le dans un endroit sûr, car toute personne y ayant accès peut l'utiliser. Si nécessaire, vous pouvez régénérer une nouvelle clé.

    Image of an API key generated with Ninja AI

Utilisation des API Ninja

Vue d'ensemble

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

Authentification :
Toutes les demandes nécessitent une clé d'API transmise dans l'en-tête comme suit, où se <token-key>trouve votre jeton d'authentification :
Autorisation : Titulaire <token-key>

Point final :
POSTE /chat/complétions
Ce terminal accepte les demandes de chat et diffuse les réponses en fonction du modèle spécifié.

Modèles :
Les modèles actuellement disponibles incluent :
recherche approfondie sur les ninjas
Ninja-Super-Agent:Turbo
Ninja-Super-Agent:Apex
Ninja-Super-Agent : raisonnement

Ces modèles peuvent être sélectionnés en fournissant modèle paramètre dans le corps de votre requête.

Format de demande

L'API Ninja suit les Spécification de l'API OpenAI de près. L'objet JSON de requête contient :

modèle (chaîne) :
L'identifiant du modèle à utiliser (par exemple, « Une recherche approfondie sur les ninjas »).

messages (tableau) :
Tableau d'objets de message. Chaque objet suit le format suivant :

JSON

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

stream (booléen) :
Lorsqu'il est réglé sur vrai, l'API répond par une réponse en streaming.

stream_options (objet) :
Des options supplémentaires pour le streaming, telles que « include_usage » : vrai pour inclure les informations relatives à l'utilisation des jetons.

extra_headers (objet) :
Tous les en-têtes supplémentaires requis par l'API Ninja (aucun pour le moment)

Exemple de demande (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
  }
}
  

Réponse

L'API renvoie un flux de ChatCompletion Chunk objets. Chaque morceau peut contenir :

Contenu :
Le texte de la complétion, qui peut inclure des étapes de raisonnement encapsulées au format XML.

Références :
Une liste d'URL qui étaye le raisonnement fourni.

Informations d'utilisation :
Statistiques d'utilisation des jetons si « include_usage » : vrai a été spécifié.

Le code client peut traiter ces segments pour afficher une réponse complète comprenant :

Étapes de raisonnement : Extrait et formaté à partir de segments XML.

Références : Affiché sous forme de liste numérotée.

Statistiques d'utilisation : Affichage des jetons d'entrée et de sortie.

Exemples de code

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);
      }
    }
  }
}
  

Tarification

Mode

Prix d'entrée/ par M jetons

Prix de sortie/ par M jetons

Prix/ tâche

Codeur Qwen 3 480B (Cerebras)

Par défaut pour Ninja Cline AI Studio

1,50$

Mode standard

Équilibre entre qualité et rapidité
Par défaut :
GLM 4.6
Codeur profond :
GLM 4.6

1,00$

Mode complexe

LLM de la plus haute qualité pour les tâches complexes
Par défaut :
Sonnet 4.5
Deep Codeur
Sonnet 4.5

1,50$

Mode rapide

L'agent général le plus rapide au monde
Par défaut :
GLM 4,6*
Recherche approfondie :
Qwen Model Logo
Qwen3—235B*
Codeur profond :
GLM 4.6
*Propulsé par Cerebras
Cerebras logo

1,50$

Mode

Prix d'entrée/ par M jetons

Prix de sortie/ par M jetons

Prix/ tâche

Codeur Qwen 3 480B (Cerebras)

Par défaut pour Ninja Cline AI Studio

3,75$

3,75$

Mode standard

Équilibre entre qualité et rapidité
Par défaut :
GLM 4.6
Codeur profond :
GLM 4.6

1,50$

1,50$

Mode complexe

LLM de la plus haute qualité pour les tâches complexes
Par défaut :
Sonnet 4.5
Deep Codeur
Sonnet 4.5

4,50$

22,50$

Mode rapide

L'agent général le plus rapide au monde
Par défaut :
GLM 4,6*
Recherche approfondie :
Qwen Model Logo
Qwen3—235B*
Codeur profond :
GLM 4.6
*Propulsé par Cerebras
Cerebras logo

3,75$

3,75$

modèle

Prix d'entrée/ par M jetons

Prix de sortie/ par M jetons

Turbo 1.0

0,11$

0,42$

Apex 1.0

0,88$

7,00$

Raisonnement 2.0

0,38$

1,53$

Deep Research 2.0

1,40$

5,60$

Limites de taux

Ninja AI impose des limites de débit sur les demandes d'inférence par modèle afin de garantir que les développeurs puissent essayer l'inférence la plus rapide.

modèle

Demande par minute (TR/MIN)

Turbo 1.0

50

Apex 1.0

20

Raisonnement 2.0

30

Deep Research 2.0

5

Questions fréquemment posées

Voici ce que vous devez savoir sur l'API de Ninja en fonction des questions les plus fréquemment posées.

Comment puis-je augmenter le seuil et le montant de mon paiement automatique ?

  • Dans Ninja, allez dans le panneau de gauche et cliquez sur Icône de gestion des API.

  • En dessous « Vos crédits » cliquez sur « Gérer les crédits ».

  • Dans le « Montant du paiement automatique » champ, entrez le montant que vous souhaitez augmenter pour les crédits (minimum de 30$).

  • Dans le « Seuil de paiement automatique » champ, modifiez le seuil que nous rechargerons lorsque votre solde tombera en dessous de ce montant « Montant du paiement automatique ». Cela garantit que vous ne serez pas à court de crédits ou que votre clé API ne cessera pas de fonctionner (minimum 25$).

  • Cliquez « Enregistrer les modifications » pour confirmer.

Comment puis-je annuler mon contrat de paiement automatique ?

  • Dans Ninja, allez dans le panneau de gauche et cliquez sur Icône de gestion des API.

  • Sélectionnez « Clés et crédits API » puis allez à « Vos crédits » section.

  • En dessous « Vos crédits » cliquez sur « Plus d'options ».

  • Sélectionnez « Annuler le paiement automatique des crédits »(minimum de 30$).

  • Cliquez « Supprimer le paiement automatique » pour confirmer.

Comment supprimer une clé API ?

  • Dans Ninja, allez dans le panneau de gauche et cliquez sur Icône de gestion des API.

  • Sélectionnez « Clés et crédits API », puis allez à « Clés API ».

  • Trouvez votre clé API et sélectionnez l'icône de la corbeille sur la droite.

  • Cliquez « Supprimer la clé API » pour confirmer.

Comment puis-je consulter l'utilisation de chaque demande d'API ?

  • Dans Ninja, allez dans le panneau de gauche et cliquez sur Icône de gestion des API.

  • Cliquez ensuite « Utilisation de l'API ».

  • Sur le « Utilisation de l'API » page, vous verrez un tableau affichant les détails suivants pour chaque API :

    • Nom de la clé

    • modèle

    • Jetons d'entrée et de sortie

    • Coût d'entrée et de sortie

    • Horodatage de la demande

    • Coût total