Oversikt
Kartet over API-et: hvert endepunkt, hvordan en forespørsel og en feil ser ut, hvordan kall betales, og hva du bør vite når du kommer fra en OpenAI- eller Anthropic-SDK.
Endepunkter
Hvert endepunkt ligger under én base-URL og leveres over HTTPS.
https://api.shannon-ai.com | Endepunkt | Format | Hva den brukes til |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Send en samtale og få neste svar. Med eller uten streaming. |
POST /v1/messages | Anthropic Messages | Det samme, i forespørsels- og svarformene til Anthropic-SDK-er. |
POST /v1/responses | OpenAI Responses | Det samme, i Responses-formene. Endepunktet holder ingen tilstand: send samtalen med hver forespørsel. |
GET /v1/models | OpenAI-modelliste | List modellene med kontekstvindu, priser og funksjoner. Trenger ingen nøkkel. |
POST /v1/tokenize | Shannon API | Tell tokens i en tekst eller i en chat-forespørsel for en hostet åpen vektmodell. Gratis. |
POST /v1/messages/count_tokens | Anthropic token-telling | Tell input-tokens i en Messages-forespørsel for en hostet åpen vektmodell. Gratis. |
De tre endepunktene som produserer tekst, når de samme modellene. Velg det som har formatet koden din allerede bruker.
Grunnleggende om forespørsler
| Header | Beskrivelse |
|---|---|
Authorization: Bearer <key> | API-nøkkelen din. Påkrevd på alle endepunkter unntatt GET /v1/models, med mindre du sender x-api-key. |
x-api-key: <key> | Den samme nøkkelen i headeren Anthropic-SDK-er sender. Leses på alle endepunkter. |
Content-Type: application/json | Påkrevd på hver POST. Uten den er svaret 415. |
x-request-id: <your id> | Valgfri. Din egen id for forespørselen; den kommer tilbake i svarheaderen x-request-id. Uten den lager API-et en på 12 heksadesimale tegn. |
- Kroppen i hver
POSTer ett JSON-objekt, opptil 32 MiB. - Et felt API-et ikke kjenner, gir ingen feil og har ingen effekt. En forespørsel skrevet for en annen leverandør feiler ikke på grunn av et ekstra felt.
- Et kjent felt med feil JSON-type, eller et manglende påkrevd felt, besvares med
422. En kropp som ikke er gyldig JSON, besvares med400. modeler en av id-ene på Models & pricing. Store og små bokstaver spiller ingen rolle.
Et svar er JSON, eller en strøm av server-sent events når forespørselen setter stream til true. Hvert endepunkt svarer i sitt eget format. Hvert svar har headeren x-request-id.
Hva en forespørsel må igjennom
En forespørsel sjekkes i fast rekkefølge før en modell kjører. Den første sjekken som feiler, svarer, så en 401 sier ennå ingenting om kroppen.
| Sjekkes, i denne rekkefølgen | Status ved feil |
|---|---|
| API-nøkkel | 401 |
| Kropp: størrelse, innholdstype, JSON, felttyper | 413 · 415 · 400 · 422 |
| Modell-id | 400 |
| Flood protection: 120 forespørsler per minutt per konto | 429 |
| Saldo: utdatabudsjettet til forespørselen må få plass | 429 |
Feilform
En feil er et JSON-objekt med en error som inneholder type og message. /v1/messages pakker den inn slik Anthropic-SDK-er forventer; alle andre stier bruker OpenAI-formen.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Les
typeogmessage.codeogparamfinnes bare på enkelte feil: behandle dem som valgfrie.paramer alltidnull. - Etter at en strøm har startet, er statusen allerede
200. En feil kommer da som en feilramme inne i strømmen. - Hvert feilsvar har headeren
x-request-id.
| Status | Type | Når |
|---|---|---|
400 | invalid_request_error | Kroppen er ikke gyldig JSON, modell-id-en er ukjent, eller modellen tar ikke imot en type input du sendte. |
401 | authentication_error | Nøkkelen mangler eller er ugyldig. |
404 | not_found_error | Stien finnes ikke. |
405 | api_error | Stien finnes, men metoden er feil. |
413 | invalid_request_error | Kroppen er større enn 32 MiB. |
415 | invalid_request_error | Content-Type er ikke application/json. |
422 | invalid_request_error | Et felt har feil JSON-type, eller et påkrevd felt mangler. |
429 | rate_limit_error | Saldoen dekker ikke forespørselen, mer enn 120 forespørsler kom inn i løpet av et minutt, Shannon Coder-kallene i vinduet er brukt opp, eller modellen er opptatt. Meldingen sier hvilket. |
5xx | api_error | Status 500, 502, 503 eller 504: forespørselen var gyldig, men kunne ikke besvares. Send den på nytt. En 500 kan ha typen server_error. |
Fakturering og saldo
- Det finnes én saldo per konto, og chat og API deler den: først dagens plan-kvote, deretter kjøpt kreditt. API-et har ingen egen kvote.
- En forespørsel reserverer utdatabudsjettet sitt (
max_tokens, standard 4,096) og belastes deretter for tokens-ene den faktisk brukte, til modellens pris. - Hvert svar rapporterer tokenantallene sine i
usage. Siden Keys & usage viser saldoen og hva hver forespørsel kostet. - Hver forespørsel behandles likt. Den eneste grensen for forespørselsrate er flood protection: 120 forespørsler per minutt per konto. Forespørsler som sendes parallelt, venter i kø.
Grenser og saldo Modeller og priser Nøkler og bruk
Felt som avhenger av modellen
Alle modeller tar imot den samme forespørselen. Noen få felt har bare effekt på enkelte modeller; tabellen oppgir hvilke. Endepunktsidene lister hvert felt.
| Felt | Beskrivelse | Brukes av |
|---|---|---|
system | Instruksjoner til modellen: en system-melding på Chat Completions, system på Messages, instructions på Responses. | Hostede åpne vektmodeller, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Samplingtemperatur. | Hostede åpne vektmodeller, shannon-1.6-*, shannon-coder-1 |
top_p | Nucleus-sampling. | Hostede åpne vektmodeller |
seed | Et fast seed for sampling. | Hostede åpne vektmodeller |
stop | Opptil 4 stoppsekvenser. | Hostede åpne vektmodeller |
reasoning_effort | Hvor mye modellen resonnerer før den svarer. reasoning.effort på Responses, thinking på Messages. | Hostede åpne vektmodeller |
web_search | true lar modellen søke på nettet for denne forespørselen. Et felt i dette API-et, på Chat Completions og Messages. | Shannon-modeller unntatt shannon-coder-1 |
max_tokens | Utdatabudsjettet. På alle modeller bestemmer det beløpet som reserveres fra saldoen din. | Som grense for lengden på svaret: hostede åpne vektmodeller, shannon-1.6-*, shannon-coder-1 |
Hvis du kommer fra en OpenAI-SDK
- Sett base-URL-en til
https://api.shannon-ai.com/v1og nøkkelen til Shannon-nøkkelen din. Kall til Chat Completions og Responses fungerer da med SDK-en som den er. modelmå være en Shannon-id. Et modellnavn fra en annen leverandør, somgpt-4o, besvares med400ogunknown model.- Resonnering kommer i et eget felt:
reasoning_contentved siden avcontent, i meldingen og i strømdeltaene. - En strøm har alltid
usagei den siste chunken, sammen medfinish_reason. - Et verktøykall i en strøm kommer som én chunk med hele
arguments-strengen. - Et svar har ett valg.
- Stier i OpenAI-API-et som ikke står i tabellen over, som
/v1/embeddings, besvares med404.
Hvis du kommer fra en Anthropic-SDK
- Sett base-URL-en til
https://api.shannon-ai.com, uten/v1, og nøkkelen til Shannon-nøkkelen din. SDK-en sender den somx-api-key. modelmå være en Shannon-id.max_tokenser valgfri i dette API-et. Standardverdien er 4,096.- Et svar inneholder innholdsblokker av typene
thinking,textogtool_use. Den første blokken er ikke alltid teksten: velg blokker ettertype. stop_reasonerend_turnellertool_use. En strøm fra en Shannon-modell kan også ende medmax_tokens.anthropic-versionoganthropic-betagodtas, så SDK-en fungerer uendret. En forespørsel trenger dem ikke.- Feil på
/v1/messageshar Anthropic-formen:{"type": "error", "error": {…}}.
Kodeverktøy som snakker disse formatene, settes opp på samme måte: base-URL, nøkkel og en Shannon-id som modell. CLI-verktøy for koding