Inizia

Guida rapida alle API

Inizia con le API di Ninja e potenzia i tuoi prodotti di intelligenza artificiale con velocità, scalabilità e affidabilità senza pari.

Scopri di più

Registrazione

Registrati all'indirizzo Super MyNinja.ai per iniziare a utilizzare le nostre API.

Puoi registrarti gratuitamente o abbonarti a un livello Ultra o Business. Ultra e Business ti danno accesso illimitato al parco giochi per sperimentare i nostri LLM di punta, che si occupano di ragionamento e ricerca approfondita*.

Quando sei pronto per passare dall'esplorazione all'esecuzione, acquista crediti per iniziare a creare prodotti ed esperienze di intelligenza artificiale per la codifica, la scrittura e molto altro.

* Soggetto a soglie di abuso

Crediti di acquisto

  • Dopo esserti iscritto a Super MyNinja.ai, vai al pannello di sinistra e fai clic su icona API.

    Image of user navigating to the api management page
  • Quindi vai a «Abbonamento e crediti».

    Image of user navigating to the API keys & credits page
  • Sotto «I tuoi crediti» clicca «Crediti di acquisto».

    Image of the API credits section in Ninja AI
  • Nel «Importo del pagamento automatico» campo, inserisci l'importo che desideri acquistare in cambio di crediti (minimo $30).

    Image of a user setting their credit amount for their auto-pay agreement in Ninja AI
  • Nel «Soglia di pagamento automatico» campo, imposta l'importo della soglia che quando il saldo scende al di sotto di tale importo ricaricheremo il «Importo del pagamento automatico». Questo ti assicura di non esaurire i crediti o che la tua chiave API smetta di funzionare (minimo $25).

    Image of a user setting their threshold amount for their auto-pay agreement in Ninja AI
  • Seleziona il tuo metodo di pagamento preferito e fai clic su «Conferma e paga». Verrai quindi reindirizzato a una schermata di fatturazione di Stripe per completare il pagamento.

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

Genera una chiave API

  • Dopo aver acquistato i tuoi crediti, vai alla «Gestisci le tue chiavi API» sezione sulla Pagina delle chiavi API e dei crediti.

    Image of user navigating to the API keys & credits page
  • Fai clic su «Crea una nuova chiave» pulsante.

    Image of manage your API keys section in Ninja AI
  • Nel «Nome» campo, inserisci un nome per la tua chiave (ad es. Chiave di produzione) e quindi fare clic su «Crea chiave».

    Image of naming process for an API key generated by Ninja AI
  • Una volta generata la chiave, copialo e salvalo in un posto sicuro, poiché chiunque abbia accesso può usarlo. Se necessario, puoi rigenerare una nuova chiave.

    Image of an API key generated with Ninja AI

Utilizzo delle API Ninja

Vista d'insieme

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

Autenticazione:
Tutte le richieste richiedono una chiave API passata nell'intestazione come segue, <token-key>dov'è il token di autenticazione:
Autorizzazione: portatore <token-key>

Punto finale:
POSTA /chat/completamenti
Questo endpoint accetta richieste di chat e trasmette risposte in streaming in base al modello specificato.

Modelli:
I modelli attualmente disponibili includono:
ricerca approfondita sui ninja
ninja-super-agent: turbo
superagente ninja: apex
Ninja-super-agent: ragionamento

Questi modelli possono essere selezionati fornendo modello parametro nel corpo della richiesta.

Formato di richiesta

L'API Ninja segue il Specifiche API OpenAI da vicino. L'oggetto JSON della richiesta contiene:

modello (stringa):
L'identificatore del modello da utilizzare (ad es. «ricerca approfondita sui ninja»).

messaggi (array):
Una serie di oggetti messaggio. Ogni oggetto segue il formato:

JSON

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

stream (booleano):
Quando è impostato su vero, l'API risponde con una risposta in streaming.

stream_options (oggetto):
Opzioni aggiuntive per lo streaming, come «include_usage»: vero per includere i dettagli sull'utilizzo dei token.

extra_headers (oggetto):
Eventuali intestazioni aggiuntive richieste dall'API Ninja (nessuna a questo punto)

Esempio di richiesta (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
  }
}
  

Risposta

L'API restituisce un flusso di ChatCompletionChunk oggetti. Ogni blocco può contenere:

Contenuto:
Il testo del completamento, che può includere passaggi di ragionamento racchiusi in XML.

Citazioni:
Un elenco di URL che supportano il ragionamento fornito.

Informazioni sull'utilizzo:
Statistiche sull'utilizzo dei token se «include_usage»: vero è stato specificato.

Il codice cliente può elaborare questi blocchi per visualizzare una risposta completa che include:

Fasi di ragionamento: Estratto e formattato da segmenti XML.

Citazioni: Visualizzato come elenco numerato.

Statistiche di utilizzo: Mostra i token di input e output.

Esempi di codice di esempio

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

Prezzi

modalità

Prezzo di ingresso/ per M gettoni

Prezzo alla produzione/ per M gettoni

Prezzo/ compito

Qwen 3 Coder 480B (Cerebras)

Impostazione predefinita per Ninja Cline AI Studio

1,50$

modalità standard

Equilibrio tra qualità e velocità
Impostazione predefinita:
GLM 4.6
Deep Coder:
GLM 4.6

1,00 USD

Modalità complessa

LLM di altissima qualità per attività complesse
Impostazione predefinita:
Sonetto 4.5
Deep Coder
Sonetto 4.5

1,50$

modalità veloce

L'agente generale più veloce al mondo
Impostazione predefinita:
GLM 4.6*
Ricerca approfondita:
Qwen Model Logo
Qwen 3-235B*
Deep Coder:
GLM 4.6
*Realizzato da Cerebras
Cerebras logo

1,50$

modalità

Prezzo di ingresso/ per M gettoni

Prezzo alla produzione/ per M gettoni

Prezzo/ compito

Qwen 3 Coder 480B (Cerebras)

Impostazione predefinita per Ninja Cline AI Studio

3,75$

3,75$

modalità standard

Equilibrio tra qualità e velocità
Impostazione predefinita:
GLM 4.6
Deep Coder:
GLM 4.6

1,50$

1,50$

Modalità complessa

LLM di altissima qualità per attività complesse
Impostazione predefinita:
Sonetto 4.5
Deep Coder
Sonetto 4.5

4,50$

22,50$

modalità veloce

L'agente generale più veloce al mondo
Impostazione predefinita:
GLM 4.6*
Ricerca approfondita:
Qwen Model Logo
Qwen 3-235B*
Deep Coder:
GLM 4.6
*Realizzato da Cerebras
Cerebras logo

3,75$

3,75$

Modello

Prezzo di ingresso/ per M gettoni

Prezzo alla produzione/ per M gettoni

Turbo 1.0

0,11$

0,42$

Apex 1.0

0,88$

7,00$

Ragionamento 2.0

0,38$

1,53$

Ricerca approfondita 2.0

1,40$

5,60$

Limiti tariffari

Ninja AI impone limiti di frequenza alle richieste di inferenza per modello per garantire che gli sviluppatori siano in grado di provare l'inferenza più veloce.

Modello

Richiesta al minuto (GIRI/MIN)

Turbo 1.0

50

Apex 1.0

20

Ragionamento 2.0

30

Ricerca approfondita 2.0

5

Domande frequenti

Ecco cosa devi sapere sull'API di Ninja in base a ciò che ci viene chiesto di più.

Come posso aumentare la soglia e l'importo del pagamento automatico?

  • In Ninja, vai al pannello di sinistra e fai clic su icona di gestione delle API.

  • Sotto «I tuoi crediti» clicca «Gestisci crediti».

  • Nel «Importo del pagamento automatico» campo, inserisci l'importo che desideri aumentare per i crediti (minimo $30).

  • Nel «Soglia di pagamento automatico» campo, modifica l'importo della soglia che quando il saldo scende al di sotto di tale importo ricaricheremo il «Importo del pagamento automatico». Questo ti assicura di non esaurire i crediti o che la tua chiave API smetta di funzionare (minimo 25$).

  • Fare clic «Salva modifiche» per confermare.

Come posso annullare il mio contratto di pagamento automatico?

  • In Ninja, vai al pannello di sinistra e fai clic su icona di gestione delle API.

  • Seleziona «Chiavi e crediti API» poi vai a «I tuoi crediti» sezione.

  • Sotto «I tuoi crediti» clicca «Altre opzioni».

  • Seleziona «Annulla il pagamento automatico dei crediti»(minimo $30).

  • Fare clic «Elimina pagamento automatico» per confermare.

Come faccio a eliminare una chiave API?

  • In Ninja, vai al pannello di sinistra e fai clic su icona di gestione delle API.

  • Seleziona «Chiavi e crediti API» poi vai a «Chiavi API».

  • Trova la tua chiave API e seleziona l'icona del cestino a destra.

  • Fare clic «Elimina chiave API» per confermare.

Come posso visualizzare l'utilizzo di ogni richiesta API?

  • In Ninja, vai al pannello di sinistra e fai clic su icona di gestione delle API.

  • Quindi fai clic «Utilizzo dell'API».

  • Sul «Utilizzo dell'API» pagina, vedrai una tabella che mostra i seguenti dettagli per ciascuna API:

    • Nome chiave

    • Modello

    • Token di input e output

    • Costo di ingresso e uscita

    • Timestamp per richiesta

    • Costo totale