Tabbatarwa
Kowace request tana ɗauke da maɓallin API ɗinku a cikin header. Maɓalli ɗaya ga kowane asusu yana aiki a kowane endpoint da kowane model, ta ɗayan siffofin header guda biyu.
Header · OpenAI SDKs
Authorization: Bearer YOUR_API_KEY Header · Anthropic SDKs
x-api-key: YOUR_API_KEY Headers da ake karɓa
Ana karanta duka headers a kowane endpoint na /v1, ko wane tsari endpoint ɗin yake magana. Ku aika ɗaya daga cikinsu.
| Header | Bayani |
|---|---|
Authorization: Bearer <key> | Ana dubawa da farko. Ku rubuta Bearer da babban B da sarari ɗaya kafin maɓallin. OpenAI SDKs suna aika wannan header. |
x-api-key: <key> | Ana karantawa idan request ba shi da header na Authorization: Bearer. Anthropic SDKs suna aika wannan header. |
Da OpenAI SDK, ku saita maɓalli da base URL; SDK yana aika 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) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const response = await client.chat.completions.create({
model: 'shannon-3',
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
]
});
console.log(response.choices[0].message.content); curl -X POST "https://api.shannon-ai.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
]
}' Da Anthropic SDK, ku saita maɓalli da base URL ba tare da /v1 ba; SDK yana aika 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")) import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com'
});
const message = await client.messages.create({
model: 'shannon-3',
max_tokens: 1024,
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
]
});
console.log(message.content.filter((block) => block.type === 'text').map((block) => block.text).join('')); curl -X POST "https://api.shannon-ai.com/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Shannon!"}
]
}' Waɗanne endpoints ne ke buƙatar maɓalli
| Endpoint | Maɓalli |
|---|---|
POST /v1/chat/completions | Wajibi |
POST /v1/messages | Wajibi |
POST /v1/responses | Wajibi |
POST /v1/tokenize | Wajibi |
POST /v1/messages/count_tokens | Wajibi |
GET /v1/models | Ba a buƙata |
Maɓallinku
- Maɓalli shi ne
sk-da ke biye da haruffa 43 dagaA–Z,a–z,0–9,-da_: haruffa 46 gaba ɗaya. - Kowane asusu yana da maɓalli guda ɗaya daidai. Ana ƙirƙirar shi a karon farko da kuka buɗe Maɓallai & amfani.
- Maɓallin yana ba da cikakken damar shiga API ga asusunku: kowane endpoint, kowane model da dukan balance.
- Maɓalli ba shi da ranar ƙarewa. Yana aiki har sai kun canza ko kun soke shi.
Canzawa da sokewa
Kuna canza da soke maɓalli a shafin Maɓallai & amfani. Maɓallai & amfani
| Aiki | Abin da ke faruwa |
|---|---|
| Canza | Ana ba da sabon maɓalli kuma tsohon ya daina aiki. Sabon maɓalli yana aiki nan take. |
| Soke | Maɓallin ya daina aiki kuma ba a ba da sabo ba. Ku canza don sake samun maɓalli mai aiki. |
- Duka biyun suna fara aiki nan take: request na gaba da tsohon maɓalli ana amsa shi da
401. Ku ɗauki daƙiƙa 60 a matsayin iyakar lokaci kafin a ƙi tsohon maɓalli a ko'ina. - Kowane client na asusun yana amfani da maɓalli ɗaya, don haka canji yana shafar dukansu. Ku saka sabon maɓalli a clients ɗinku nan da nan bayan kun canza.
- Balance, amfani da flood protection na asusu ne, ba na maɓalli ba. Sabon maɓalli yana ci gaba da balance iri ɗaya da ƙidayar requests iri ɗaya na minti na yanzu.
Kurakurai
Kowace gazawar tabbatarwa tana da matsayi 401 da nau'in authentication_error. Saƙon yana bambanta shari'o'in.
| Matsayi | Nau'i | Saƙo | Lokaci |
|---|---|---|---|
401 | authentication_error | Missing authentication | Request ɗin ba shi da header na Authorization: Bearer ko header na x-api-key da ya fara da sk-. Wannan ita ce amsar ga bearer da ƙananan haruffa da kuma ƙimar Authorization ba tare da Bearer ba. |
401 | authentication_error | Invalid API key | Maɓallin ba shi ne maɓallin asusu na yanzu ba: an yi kuskuren rubuta shi, an soke shi, ko kuma canji (rotation) ya maye gurbinsa. |
{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "invalid_api_key",
"param": null
}
} {
"type": "error",
"error": {
"type": "authentication_error",
"message": "Invalid API key"
}
} - A kowace hanya in ban da
/v1/messagesobject ɗinerroryana kuma ɗauke dacode: "invalid_api_key", ko da maɓalli ya ɓace, daparam: null. - Ana duba maɓallin kafin a karanta jiki. Request ba tare da maɓalli mai inganci ba yana samun
401ko da jikinsa ba shi da inganci ko ya yi girma da yawa. - Ƙimar
Authorization: Bearerda ba ta fara dask-ba ba a ɗaukar ta a matsayin maɓallin API. Tana samun401tare da saƙon cewa token ɗin ba shi da inganci ko ya ƙare.
Browsers da CORS
- API yana amsa requests na browser tsakanin origins ne kawai ga jerin origins da aka tsayar. JavaScript a shafin wani origin ba zai iya karanta amsoshin
/v1ba. - Ku kira API daga server ɗinku ku bar shafinku ya yi magana da server ɗinku. Hakan kuma yana nisanta maɓallin daga source na shafi.
- Code na gefen server da kayan layin umarni ba abin ya shafa ba: browsers ne kaɗai ke aiwatar da wannan ƙa'ida.
- Shiga a shannon-ai.com ba ya tabbatar da requests na
/v1. Ba a karanta cookies a can; maɓalli kaɗai ne takardar shaida. - Ga origin da aka yarda da shi, browser na iya aika
content-type,authorization,x-api-key,anthropic-version,anthropic-beta,openai-betadax-request-id, kuma yana iya karanta header na amsax-request-id.
Kare maɓalli
- Ku ajiye maɓallin a server. Kada ku saka shi a shafukan yanar gizo, apps na wayar hannu ko public repositories: duk wanda ya riƙe shi zai iya kashe dukan balance ɗinku.
- Ku loda maɓallin daga environment variable ko secret store maimakon rubuta shi a cikin code.
- Idan maɓallin ya yi yoyo, ku canza shi a Maɓallai & amfani. Tsohon maɓalli yana daina aiki nan take.
- Bayan yoyo, ku karanta jerin requests a Maɓallai & amfani. Yana nuna kowace request da maɓallin ya yi a kwanaki 30 da suka wuce.