Guides
- Quickstart
- Authentication and keys
- Key protection
- Models, aliases and fallbacks
- Chat completions
- Streaming
- Structured outputs and tools
- Logprobs
- Vision
- Responses, Claude and Ollama
- Embeddings, rerank, audio, images
- Files and batches
- LoRA adapters
- Project tags and costs
- Prefix caching
- Headers, rate limits and spend caps
- Errors
- Privacy and retention
- Verifiable receipts
- Pricing
- Billing
- Status
- SDKs
- Integrations
- Run a node
- Architecture
- Changelog
API reference
API reference
Chat
Text generation in three wire formats: OpenAI chat completions, the OpenAI Responses API, and Anthropic Messages. Same models, same key.
Base URL https://api.siliconnetwork.io
Chat Completions
silicon - zsh
curl -X POST https://api.siliconnetwork.io/v1/chat/completions \
-H "Authorization: Bearer sn_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b",
"messages": [
{
"role": "user",
"content": "Say hello in one line."
}
]
}'sdk.py
from siliconnetwork import SiliconNetwork
client = SiliconNetwork() # reads SILICON_API_KEY
out = client.chat.completions.create(**{
"model": "llama-3.2-3b",
"messages": [
{
"role": "user",
"content": "Say hello in one line."
}
]
})
print(out.choices[0].message.content, out.meta.request_id)sdk.ts
import { SiliconNetwork } from "@siliconnetwork/sdk";
const client = new SiliconNetwork({ apiKey: process.env.SILICON_API_KEY });
const out = await client.chat.completions.create({
"model": "llama-3.2-3b",
"messages": [
{
"role": "user",
"content": "Say hello in one line."
}
]
});
console.log(out.choices[0].message.content, out.meta.requestId);structured-output.py
from openai import OpenAI
client = OpenAI(base_url="https://api.siliconnetwork.io/v1", api_key="sn_live_...")
resp = client.chat.completions.create(
model="llama-3.2-3b",
messages=[{"role": "user", "content": "Give me a city and its country."}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "place",
"strict": True,
"schema": {
"type": "object",
"properties": {"city": {"type": "string"}, "country": {"type": "string"}},
"required": ["city", "country"],
"additionalProperties": False,
},
},
},
)
print(resp.choices[0].message.content) # valid JSON matching the schema, every timeforced-tool.py
resp = client.chat.completions.create(
model="llama-3.2-3b",
messages=[{"role": "user", "content": "What is the weather in Oslo?"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}],
tool_choice={"type": "function", "function": {"name": "get_weather"}},
)
print(resp.choices[0].message.tool_calls[0].function.arguments)response
{
"id": "chatcmpl_...",
"object": "chat.completion",
"model": "mlx-community/Llama-3.2-3B-Instruct-4bit",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Hello." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 2,
"total_tokens": 11,
"prompt_tokens_details": { "cached_tokens": 0 }
}
}Responses: 200 Successful Response, 422 Validation Error
POST/v1/responses
Openai Responses
The OpenAI Responses shape. Structured output goes in text.format; tool_choice works the same as on chat completions.
silicon - zsh
curl -X POST https://api.siliconnetwork.io/v1/responses \
-H "Authorization: Bearer sn_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b",
"input": "Say hello in one line."
}'request.py
from siliconnetwork import SiliconNetwork
client = SiliconNetwork()
data, meta = client.request("POST", "/v1/responses", json={
"model": "llama-3.2-3b",
"input": "Say hello in one line."
})
print(data, meta.request_id)Responses: 200 Successful Response, 422 Validation Error
POST/v1/messages
Claude Messages
Anthropic Messages shape. Auth is still Authorization: Bearer, not x-api-key, so set that header explicitly in an Anthropic SDK.
silicon - zsh
curl -X POST https://api.siliconnetwork.io/v1/messages \
-H "Authorization: Bearer sn_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b",
"max_tokens": 256,
"messages": [
{
"role": "user",
"content": "Say hello in one line."
}
]
}'request.py
from siliconnetwork import SiliconNetwork
client = SiliconNetwork()
data, meta = client.request("POST", "/v1/messages", json={
"model": "llama-3.2-3b",
"max_tokens": 256,
"messages": [
{
"role": "user",
"content": "Say hello in one line."
}
]
})
print(data, meta.request_id)anthropic-sdk.py
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.siliconnetwork.io",
api_key="unused",
default_headers={"Authorization": "Bearer sn_live_..."},
)
msg = client.messages.create(
model="llama-3.2-3b",
max_tokens=256,
messages=[{"role": "user", "content": "Say hello in one line."}],
)
print(msg.content[0].text)Responses: 200 Successful Response, 422 Validation Error
Silicon Network›Docs›API›Chat37 items