Hopp til innholdet
Autentisering

Autentisering

Hver forespørsel har API-nøkkelen din i en header. Én nøkkel per konto fungerer på alle endepunkter og alle modeller, i en av to header-former.

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

Godtatte headere

Begge headerne leses på hvert /v1-endepunkt, uansett hvilket format endepunktet snakker. Send én av dem.

Header Beskrivelse
Authorization: Bearer <key> Sjekkes først. Skriv Bearer med stor B og ett mellomrom før nøkkelen. OpenAI-SDK-er sender denne headeren.
x-api-key: <key> Leses når forespørselen ikke har noen Authorization: Bearer-header. Anthropic-SDK-er sender denne headeren.

Med en OpenAI-SDK setter du nøkkelen og base-URL-en; SDK-en sender 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)

Med en Anthropic-SDK setter du nøkkelen og base-URL-en uten /v1; SDK-en sender 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"))

Hvilke endepunkter som trenger nøkkel

Endepunkt Nøkkel
POST /v1/chat/completions Påkrevd
POST /v1/messages Påkrevd
POST /v1/responses Påkrevd
POST /v1/tokenize Påkrevd
POST /v1/messages/count_tokens Påkrevd
GET /v1/models Ikke nødvendig

Nøkkelen din

  • En nøkkel er sk- etterfulgt av 43 tegn fra A–Z, a–z, 0–9, - og _: 46 tegn til sammen.
  • Hver konto har nøyaktig én nøkkel. Den opprettes første gang du åpner Nøkler og bruk.
  • Nøkkelen gir full tilgang til API-et for kontoen din: alle endepunkter, alle modeller og hele saldoen.
  • En nøkkel har ingen utløpsdato. Den fungerer til du roterer eller tilbakekaller den.

Roter og tilbakekall

Du roterer og tilbakekaller nøkkelen på siden Nøkler og bruk. Nøkler og bruk

Handling Hva som skjer
Roter En ny nøkkel utstedes, og den gamle nøkkelen slutter å fungere. Den nye nøkkelen fungerer med en gang.
Tilbakekall Nøkkelen slutter å fungere, og ingen ny nøkkel utstedes. Roter for å få en fungerende nøkkel igjen.
  • Begge trer i kraft med en gang: den neste forespørselen med den gamle nøkkelen besvares med 401. Regn 60 sekunder som øvre grense før den gamle nøkkelen nektes overalt.
  • Alle klienter på kontoen bruker samme nøkkel, så en rotasjon treffer dem alle. Legg den nye nøkkelen inn i klientene dine rett etter at du har rotert.
  • Saldo, bruk og flood protection hører til kontoen, ikke til nøkkelen. En ny nøkkel fortsetter med samme saldo og samme forespørselsteller for det gjeldende minuttet.

Feil

Hver autentiseringsfeil har status 401 og typen authentication_error. Meldingen skiller tilfellene fra hverandre.

Status Type Melding Når
401 authentication_error Missing authentication Forespørselen har verken en Authorization: Bearer-header eller en x-api-key-header som begynner med sk-. Dette er også svaret på bearer med små bokstaver og på en Authorization-verdi uten Bearer.
401 authentication_error Invalid API key Nøkkelen er ikke den gjeldende nøkkelen til en konto: den er skrevet feil, den ble tilbakekalt, eller den ble erstattet ved en rotasjon.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • På alle stier unntatt /v1/messages inneholder error-objektet også code: "invalid_api_key", også ved manglende nøkkel, og param: null.
  • Nøkkelen sjekkes før kroppen leses. En forespørsel uten gyldig nøkkel får 401 selv om kroppen er ugyldig eller for stor.
  • En Authorization: Bearer-verdi som ikke begynner med sk-, behandles ikke som en API-nøkkel. Den får 401 med en melding om at tokenet er ugyldig eller utløpt.

Nettlesere og CORS

  • API-et svarer på cross-origin-forespørsler fra nettlesere bare for en fast liste med origins. JavaScript på en side fra en annen origin kan ikke lese /v1-svar.
  • Kall API-et fra serveren din og la siden din snakke med serveren din. Det holder også nøkkelen ute av sidekilden.
  • Kode på serversiden og kommandolinjeverktøy påvirkes ikke: denne regelen håndheves bare av nettlesere.
  • En innlogging på shannon-ai.com autentiserer ikke /v1-forespørsler. Cookies leses ikke der; nøkkelen er den eneste legitimasjonen.
  • For en tillatt origin kan en nettleser sende content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta og x-request-id, og kan lese svar-headeren x-request-id.

Slik holder du nøkkelen trygg

  • Hold nøkkelen på en server. Ikke legg den i nettsider, mobilapper eller offentlige repoer: den som har den, kan bruke hele saldoen din.
  • Last nøkkelen fra en miljøvariabel eller et hemmelighetslager i stedet for å skrive den inn i koden.
  • Hvis nøkkelen kan ha lekket, roter den under Nøkler og bruk. Den gamle nøkkelen slutter å fungere med en gang.
  • Etter en lekkasje: les forespørselslisten under Nøkler og bruk. Den viser alle forespørsler nøkkelen har gjort de siste 30 dagene.