Anthropic
POST /v1/messages petitionem in forma Anthropic Messages accipit et eadem forma respondet, per fluxum vel non. Cum SDK Anthropic et cum instrumentis in eo aedificatis utere, ut Claude Code: URL basim statue, clavem tuam API Shannon utere et id modelli Shannon nomina.
POST https://api.shannon-ai.com/v1/messages
SDK Anthropic ad URL basim Shannon dirige. SDK /v1/messages addit et clavem tuam in header x-api-key mittit.
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": "Say hello in one sentence."}],
)
for block in message.content:
if block.type == "text":
print(block.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: "Say hello in one sentence." }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
} curl 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": "Say hello in one sentence."}]
}' Responsum est nuntius cuius content est index blocorum. Blocka per type suum inveni: cum modellum ratiocinatum est, primum blocum est thinking et textus post id venit.
{
"id": "msg_5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
"type": "message",
"role": "assistant",
"model": "shannon-3",
"content": [
{
"type": "thinking",
"thinking": "The user wants a greeting in one sentence. Keep it short and friendly."
},
{
"type": "text",
"text": "Hello, it is good to meet you."
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 1184,
"output_tokens": 46
}
} Headers
| Header | Valor | Descriptio |
|---|---|---|
x-api-key | YOUR_API_KEY | Clavis tua API. Authorization: Bearer YOUR_API_KEY pro ea accipitur. |
content-type | application/json | Requisitum. |
anthropic-version | 2023-06-01 | Accipitur, non requiritur. SDK Anthropic 2023-06-01 mittit; responsum eandem formam habet quicumque valor est. |
anthropic-beta | Accipitur, non requiritur. | |
x-request-id | Facultativum. Id tuum proprium pro petitione. In responso immutatum redit; sine eo responsum id 12 characterum hexadecimalium fert. |
Campi petitionis
Solum messages requiritur. Columna Applicatur a modella nominat in quibus campus responsum mutat. Modella open-weight hospitata sunt duodecim ids indicis modellorum; familia Shannon 3 est shannon-3, shannon-3-pro, shannon-3.1 et shannon-3.1-pro. Modella et pretia
| Campus | Genus | Default | Descriptio | Applicatur a |
|---|---|---|---|---|
model | string | shannon-1.6-lite | Id modelli Shannon ex indice modellorum. Cum omni petitione mitte. Comparatio maiusculas minusculasque non distinguit. Quodvis aliud nomen 400 unknown model reddit, itaque instrumentum quod nomina modellorum propria mittit ad id Shannon configurandum est. | Omnia modella |
messages | array | Requisitum. Colloquium, nuntio vetustissimo primo, cum partibus user et assistant. Vide Nuntii et blocka contenti infra. | Omnia modella | |
system | string | array | Instructiones pro modello: series litterarum vel ordo blocorum textus. Vide System prompt infra. | Modella open-weight hospitata, shannon-1.6-*, shannon-2-*, shannon-coder-1 | |
max_tokens | integer | 4096 | Limes superior responsi, in tokens. In hoc endpoint facultativum; SDK Anthropic eum semper mittit. Valor extra 1 ad 65,536 in illam seriem adducitur. Est etiam quantitas quae a saldo tuo reservatur dum petitio currit. | Modella open-weight hospitata, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
stream | boolean | false | true responsum ut server-sent events mittit. Vide Streaming infra. | Omnia modella |
temperature | number | Temperatura sampling. In modellis open-weight hospitatis valores inter 0 et 2 servantur. | Modella open-weight hospitata, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | Nucleus sampling. | Modella open-weight hospitata | |
stop_sequences | array | Usque ad 4 series litterarum. Responsum ante primam quae apparet finitur. stop_reason manet end_turn. | Modella open-weight hospitata | |
tools | array | Instrumenta quae modellum vocare potest, quodque ut {"name", "description", "input_schema"}. Vide Tools infra. | Omnia modella | |
tool_choice | object | {"type": "auto"} modellum decernere sinit, {"type": "any"} instrumentum vocare cogit, {"type": "tool", "name": "…"} illud instrumentum vocare cogit. | Modella open-weight hospitata | |
thinking | object | Quantum modellum ratiocinetur antequam respondeat. Vide Thinking infra. | Modella open-weight hospitata | |
web_search | boolean | false | Additamentum Shannon ad formam: true modellum in interreti quaerere sinit antequam respondeat. | shannon-1.6-*, shannon-2-*, familia Shannon 3 |
Sine max_tokens valor est 4,096, et 65,536 in shannon-coder-1.
metadata, top_k, service_tier et signa cache_control in blocis accipiuntur ut codex clientis existens immutatus currat. Responsum non mutant; cachatio prompti in modellis open-weight hospitatis automatica est.
Responsum JSON ad schema cum response_format in Chat Completions et cum text.format in Responses petitur. Exitus structi
Petitio cum system prompt et thinking
Haec petitio system prompt, budgetum cogitationis, temperaturam et sequentiam stop mittit. Modellum open-weight hospitatum utitur, quod omnia applicat.
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
message = client.messages.create(
model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
max_tokens=4096,
system="You are a physics teacher. Answer in two sentences.",
thinking={"type": "enabled", "budget_tokens": 2048},
temperature=0.3,
stop_sequences=["\n\n"],
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
for block in message.content:
if block.type == "thinking":
print("reasoning:", block.thinking)
elif block.type == "text":
print("answer:", block.text)
print(message.usage) 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: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
max_tokens: 4096,
system: "You are a physics teacher. Answer in two sentences.",
thinking: { type: "enabled", budget_tokens: 2048 },
temperature: 0.3,
stop_sequences: ["\n\n"],
messages: [{ role: "user", content: "Why is the sky blue?" }],
});
for (const block of message.content) {
if (block.type === "thinking") console.log("reasoning:", block.thinking);
if (block.type === "text") console.log("answer:", block.text);
}
console.log(message.usage); curl https://api.shannon-ai.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"max_tokens": 4096,
"system": "You are a physics teacher. Answer in two sentences.",
"thinking": {"type": "enabled", "budget_tokens": 2048},
"temperature": 0.3,
"stop_sequences": ["\n\n"],
"messages": [{"role": "user", "content": "Why is the sky blue?"}]
}' In modellis open-weight hospitatis usage tokens e cache prompti lectos separatim ab aliis tokens inputi nuntiat.
{
"usage": {
"input_tokens": 31,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"output_tokens": 62
}
} System prompt
system est series litterarum vel ordo blocorum textus in forma [{"type": "text", "text": "…"}]. Textus blocorum fine lineae coniunguntur.
A modellis open-weight hospitatis, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro et shannon-coder-1 applicatur. Cum id familiae Shannon 3, instructiones quae valere debent in nuntium utentis pone.
Nuntii et blocka contenti
Nuntius role habet, user vel assistant, et content. content est series litterarum vel ordo blocorum.
| Blocum | Descriptio | Praesto in |
|---|---|---|
{"type": "text", "text": "…"} | Textus. | Omnia modella |
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "…"}}{"type": "image", "source": {"type": "url", "url": "…"}} | Imago in nuntio user, ut base64 vel per URL. | Familia Shannon 3, shannon-1.6-lite, shannon-1.6-pro et modella open-weight hospitata quae imaginem ut input enumerant |
{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | Documentum (PDF, Word, PowerPoint vel Excel) in nuntio user, ut base64 vel per URL. | Familia Shannon 3 |
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} | In nuntio assistant: vocatio instrumenti quam modellum in responso priore fecit. | Omnia modella |
{"type": "tool_result", "tool_use_id": "toolu_…", "content": "…"} | In nuntio user: exitus illius vocationis. content est series litterarum vel index blocorum textus. | Omnia modella |
content responsi prioris, ut est, remittere potes: blocka text et tool_use leguntur, blocka thinking praetermittuntur.
In gradibus Shannon imagines et documenta ex ultimo nuntio user leguntur. Magnitudines et limites paginam propriam habent. Imagines et fasciculi
Cogitatio
Modella open-weight hospitata thinking ad conatum ratiocinationis referunt. Sine campo conatus est altus.
| Forma | budget_tokens | Effectus |
|---|---|---|
{"type": "disabled"} | Nulla ratiocinatio. Responsum blocum thinking non habet. | |
{"type": "enabled", "budget_tokens": 2048} | ≤ 2,048 | Conatus humilis. |
{"type": "enabled", "budget_tokens": 8192} | ≤ 8,192 | Conatus medius. |
{"type": "enabled", "budget_tokens": 16000} | > 8,192 | Conatus altus. |
Modellum quod ratiocinatur ratiocinationem suam ut blocum {"type": "thinking", "thinking": "…"} ante textum reddit. Gradus Shannon qui ratiocinantur etiam eam mittunt.
Conatus in pagina propria describuntur. Conatus ratiocinationis
Instrumenta
Instrumentum est functio quam codex tuus exsequitur. Quodque cum name, description et input_schema describe. Cum modellum instrumentum vult, responsum blocum tool_use continet et stop_reason est tool_use.
Definitio instrumenti in tools:
[
{
"name": "get_weather",
"description": "Current weather for a city.",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
] content responsi quod id vocat:
[
{
"type": "text",
"text": ""
},
{
"type": "tool_use",
"id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"name": "get_weather",
"input": {
"city": "Paris"
}
}
] Instrumentum exsequere, deinde petitionem iterum mitte cum vocatione et bloco tool_result ad messages addito:
[
{
"role": "user",
"content": "What is the weather in Paris?"
},
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"name": "get_weather",
"input": {
"city": "Paris"
}
}
]
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"content": "{\"temperature_c\": 18, \"sky\": \"cloudy\"}"
}
]
}
] tool_choice
| Forma | Effectus | Applicatur a |
|---|---|---|
{"type": "auto"} | Modellum decernit num instrumentum vocet. Hoc est default. | Omnia modella |
{"type": "any"} | Modellum unum ex instrumentis vocare debet. | Modella open-weight hospitata |
{"type": "tool", "name": "…"} | Modellum instrumentum nominatum vocare debet. | Modella open-weight hospitata |
Solum instrumenta cum input_schema leguntur. Quaestus interretialis in hoc endpoint instrumentum non est: campum web_search pone.
Circulus instrumentorum plene in pagina propria describitur. Vocatio functionum
Responsum
| Campus | Genus | Descriptio | Mittitur a |
|---|---|---|---|
id | string | msg_ quod sequuntur 32 characteres hexadecimales. | Omnia modella |
type | string | Semper message. | Omnia modella |
role | string | Semper assistant. | Omnia modella |
model | string | Id canonicum modelli quod respondit. | Omnia modella |
content | array | Blocka responsi, hoc ordine: thinking si modellum ratiocinatum est, text, deinde unum tool_use pro qualibet vocatione instrumenti. | Omnia modella |
stop_reason | string | Cur responsum finitum sit. Vide valores infra. | Omnia modella |
usage | object | input_tokens et output_tokens. | Omnia modella |
sources | array | Solum in petitione cum web_search: true cuius quaestus aliquid invenit: eventus qui modello dati sunt, quisque cum index, title et url. [1] in responso est ingressus cum index 1. In stream cum eventu message_delta venit. | shannon-1.6-*, shannon-2-*, familia Shannon 3 |
usage.cache_read_input_tokens | integer | cache_read_input_tokens est pars prompti e cache lecta; input_tokens est reliquum. cache_creation_input_tokens semper est 0. | Modella open-weight hospitata |
Blocka responsi
| Blocum | Descriptio |
|---|---|
{"type": "thinking", "thinking": "…"} | Ratiocinatio modelli. Membrum signature non est. |
{"type": "text", "text": "…"} | Textus responsi. Vacuus esse potest cum responsum est vocatio instrumenti. |
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} | Vocatio instrumenti. input est objectum JSON. Exitum cum eodem id remitte. |
stop_reason
| stop_reason | Descriptio | Mittitur a |
|---|---|---|
end_turn | Modellum responsum finivit, vel una ex stop_sequences tuis apparuit. | Omnia modella |
tool_use | Responsum unam vel plures vocationes instrumentorum continet. | Omnia modella |
max_tokens | Responsum ad limitem outputi abscissum est. | Familia Shannon 3, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1, in fluxibus |
Fluxus
stream in true pone ut server-sent events accipias. Quodque frame lineam event: cum nomine eventus et lineam data: cum objecto JSON habet quod nomen in type repetit. Adiutores fluxus SDK Anthropic hos eventus pro te legunt:
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
with client.messages.stream(
model="shannon-3",
max_tokens=1024,
messages=[{"role": "user", "content": "Explain server-sent events in three sentences."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
message = stream.get_final_message()
print()
print(message.stop_reason, message.usage) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const stream = client.messages.stream({
model: "shannon-3",
max_tokens: 1024,
messages: [{ role: "user", content: "Explain server-sent events in three sentences." }],
});
stream.on("text", (text) => process.stdout.write(text));
const message = await stream.finalMessage();
console.log("\n", message.stop_reason, message.usage); curl -N 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,
"stream": true,
"messages": [{"role": "user", "content": "Explain server-sent events in three sentences."}]
}' Eventus, ordine quo adveniunt:
| Eventus | Data | Quando |
|---|---|---|
message_start | message | Semper primus. message id, partem, modellum, content vacuum et usage a nihilo incipientem continet. |
content_block_start | index, content_block | Blocum aperitur. content_block est blocum text vel thinking vacuum, vel blocum tool_use cum id et name suis. |
content_block_delta | index, delta {"type": "thinking_delta", "thinking"} | Frustum ratiocinationis, pro bloco thinking. |
content_block_delta | index, delta {"type": "text_delta", "text"} | Frustum responsi, pro bloco text. |
content_block_delta | index, delta {"type": "input_json_delta", "partial_json"} | Argumenta vocationis instrumenti, in uno delta completa, pro bloco tool_use. |
content_block_stop | index | Blocum cum hoc index completum est. |
message_delta | delta {stop_reason, stop_sequence}, usage | Finis responsi: delta.stop_reason, et usage petitionis. |
message_stop | Semper ultimus. |
Blocka per index numerantur ordine quo aperiuntur, et unum blocum completur antequam proximum aperiatur. Quodque blocum per genus suum lege, non per numerum: fluxus primum blocum text vacuum aperire potest, deinde blocum thinking, et responsum in blocum text posterius tradere.
event: message_start
data: {"type":"message_start","message":{"id":"msg_5f0c…","type":"message","role":"assistant","model":"shannon-3","content":[],"usage":{"input_tokens":0,"output_tokens":0}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"thinking","thinking":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":1,"delta":{"type":"thinking_delta","thinking":"Three sentences: what it is, how it is framed, why it is used."}}
event: ping
data: {"type": "ping"}
event: content_block_stop
data: {"type":"content_block_stop","index":1}
event: content_block_start
data: {"type":"content_block_start","index":2,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"Server-sent events let a server push text over one HTTP reply."}}
event: content_block_stop
data: {"type":"content_block_stop","index":2}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":1190,"output_tokens":84}}
event: message_stop
data: {"type":"message_stop"} Keep-alive
| Mittitur a | Descriptio |
|---|---|
Familia Shannon 3, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | Eventus ping cum datis {"type": "ping"}, quaque 15 secundis. |
| Modella open-weight hospitata | Linea commenti : keepalive, quaque 15 secundis dum modellum operatur. |
Fluxus qui deficit
Defectus post fluxum incohatum est eventus error cum eodem corpore ac responsum erroris: {"type": "error", "error": {"type", "message"}}. Eventus clausurae, message_delta et message_stop, tamen sequuntur. Responsum ut defectum tracta et petitionem iterum mitte.
Errores
Errores corpus erroris Anthropic utuntur: type est error, et objectum error type et message continet. Tabula ea enumerat quae hoc endpoint saepissime reddit. Index plenus, cum notis quid iterandum sit, paginam propriam habet. Tractatio errorum
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Status | Genus | Nuntius | Quando |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | Nulla clavis API missa est, vel clavis ignota aut revocata est. |
400 | invalid_request_error | unknown model: <id> | model non est id modelli Shannon. |
400 | invalid_request_error | No user message provided | Gradus Shannon: petitio nullum textum utentis nec tools habet. |
400 | invalid_request_error | <id> does not accept image input | Imago ad modellum open-weight hospitatum missa est quod imaginem ut input non accipit. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages deest, vel campus genus JSON falsum habet. |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_tokens maius est quam quod de saldo tuo superest. |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Defensio inundationis: plus quam 120 petitiones uno minuto in ratione tua. |
429 | rate_limit_error | Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan | shannon-coder-1: vocationes Shannon Coder plani tui pro fenestra 4 horarum praesenti consumptae sunt. |
500 | server_error | The model backend failed to answer. Please retry. | Modellum responsum non edidit. Petitionem iterum mitte. |
502 | api_error | The model backend failed to answer. Please retry. | Modellum responsum non edidit. Petitionem iterum mitte. |
Computatio tokenum
POST /v1/messages/count_tokens idem corpus accipit quod petitio nuntii (model, system, messages, tools) et reddit {"input_tokens": n}: numerum tokenorum inputi pro quibus petitio computaretur. Pro modellis open-weight hospitatis valet, gratuitum est et a defensione inundationis non computatur.
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
count = client.messages.count_tokens(
model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
system="You are a physics teacher. Answer in two sentences.",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(count.input_tokens) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const count = await client.messages.countTokens({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
system: "You are a physics teacher. Answer in two sentences.",
messages: [{ role: "user", content: "Why is the sky blue?" }],
});
console.log(count.input_tokens); curl https://api.shannon-ai.com/v1/messages/count_tokens \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"system": "You are a physics teacher. Answer in two sentences.",
"messages": [{"role": "user", "content": "Why is the sky blue?"}]
}'
# {"input_tokens": 31} Computatio paginam propriam habet, cum endpoint textus simplicis et limitibus. Computatio tokenum