Sari la conținut
Autentificare

Autentificare

Fiecare cerere poartă cheia ta API într-un header. O singură cheie pe cont funcționează pe fiecare endpoint și cu fiecare model, în oricare dintre cele două forme de header.

Header · SDK-uri OpenAI
Authorization: Bearer YOUR_API_KEY
Header · SDK-uri Anthropic
x-api-key: YOUR_API_KEY

Header-e acceptate

Ambele header-e sunt citite pe fiecare endpoint /v1, indiferent de formatul pe care îl vorbește endpoint-ul. Trimite unul dintre ele.

Header Descriere
Authorization: Bearer <key> Verificat primul. Scrie Bearer cu B majuscul și un singur spațiu înaintea cheii. SDK-urile OpenAI trimit acest header.
x-api-key: <key> Citit când cererea nu are header-ul Authorization: Bearer. SDK-urile Anthropic trimit acest header.

Cu un SDK OpenAI, setează cheia și URL-ul de bază; SDK-ul trimite Authorization: Bearer.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1"
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print(response.choices[0].message.content)

Cu un SDK Anthropic, setează cheia și URL-ul de bază fără /v1; SDK-ul trimite x-api-key.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com"
)

message = client.messages.create(
    model="shannon-3",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print("".join(block.text for block in message.content if block.type == "text"))

Ce endpoint-uri necesită o cheie

Endpoint Cheie
POST /v1/chat/completions Necesară
POST /v1/messages Necesară
POST /v1/responses Necesară
POST /v1/tokenize Necesară
POST /v1/messages/count_tokens Necesară
GET /v1/models Nu este necesară

Cheia ta

  • O cheie este sk- urmat de 43 de caractere din A–Z, a–z, 0–9, - și _: 46 de caractere în total.
  • Fiecare cont are exact o cheie. Ea este creată prima dată când deschizi Chei și utilizare.
  • Cheia oferă acces complet la API pentru contul tău: fiecare endpoint, fiecare model și întregul sold.
  • O cheie nu are dată de expirare. Funcționează până când o rotești sau o revoci.

Rotire și revocare

Rotești și revoci cheia pe pagina Chei și utilizare. Chei și utilizare

Acțiune Ce se întâmplă
Rotește Se emite o cheie nouă, iar cheia veche încetează să funcționeze. Cheia nouă funcționează imediat.
Revocă Cheia încetează să funcționeze și nu se emite nicio cheie nouă. Rotește pentru a avea din nou o cheie funcțională.
  • Ambele acțiuni au efect imediat: următoarea cerere cu cheia veche primește răspuns 401. Consideră 60 de secunde drept limita superioară până când cheia veche este refuzată peste tot.
  • Toți clienții contului folosesc aceeași cheie, deci o rotire îi afectează pe toți. Pune noua cheie în clienții tăi imediat după rotire.
  • Soldul, utilizarea și protecția anti-flood aparțin contului, nu cheii. O cheie nouă continuă cu același sold și cu același număr de cereri pentru minutul curent.

Erori

Fiecare eroare de autentificare are starea 401 și tipul authentication_error. Mesajul deosebește cazurile.

Stare Tip Mesaj Când
401 authentication_error Missing authentication Cererea nu are nici header-ul Authorization: Bearer, nici un header x-api-key care începe cu sk-. Acesta este și răspunsul pentru bearer cu litere mici și pentru o valoare Authorization fără Bearer.
401 authentication_error Invalid API key Cheia nu este cheia curentă a unui cont: este scrisă greșit, a fost revocată sau a fost înlocuită printr-o rotire.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Pe orice cale în afară de /v1/messages, obiectul error conține și code: "invalid_api_key", inclusiv pentru o cheie lipsă, și param: null.
  • Cheia este verificată înainte de citirea corpului. O cerere fără o cheie validă primește 401 chiar dacă are corpul invalid sau prea mare.
  • O valoare Authorization: Bearer care nu începe cu sk- nu este tratată ca o cheie API. Primește 401 cu un mesaj că token-ul este invalid sau expirat.

Browsere și CORS

  • API-ul răspunde la cereri cross-origin din browser doar pentru o listă fixă de origini. JavaScript de pe o pagină cu altă origine nu poate citi răspunsurile /v1.
  • Apelează API-ul de pe serverul tău și lasă pagina să comunice cu serverul tău. Astfel cheia rămâne și în afara sursei paginii.
  • Codul de pe server și instrumentele din linia de comandă nu sunt afectate: această regulă este aplicată doar de browsere.
  • O autentificare pe shannon-ai.com nu autentifică cererile /v1. Cookie-urile nu sunt citite acolo; cheia este singura credențială.
  • Pentru o origine permisă, un browser poate trimite content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta și x-request-id și poate citi header-ul de răspuns x-request-id.

Cum păstrezi cheia în siguranță

  • Păstrează cheia pe un server. Nu o pune în pagini web, aplicații mobile sau depozite publice: oricine o deține îți poate cheltui tot soldul.
  • Încarcă cheia dintr-o variabilă de mediu sau dintr-un depozit de secrete, în loc să o scrii în cod.
  • Dacă cheia s-ar putea să fi fost expusă, rotește-o în Chei și utilizare. Cheia veche încetează să funcționeze imediat.
  • După o scurgere, citește lista de cereri din Chei și utilizare. Aceasta arată fiecare cerere făcută cu cheia în ultimele 30 de zile.