Quickstart — premier appel API en 5 minutes
De l'inscription au premier chat completion fonctionnel. Suivez les 4 étapes ci-dessous.
1. Créer votre compte
Inscription gratuite en 30 secondes. Plan Free permanent (5 000 tokens/mois, hard cap, sans CB).
2. Top-up (optionnel)
Si vous prévoyez plus de 5K tokens/mois, choisissez un plan Starter / Pro / Business depuis la console. Paiement via SecuCFO.
3. Générer une clé API
Console → API Keys → Nouvelle clé. Format : `sk-secuai-...`. Copiez-la, elle ne sera plus affichée. Utilisez les virtual keys par projet pour isoler quotas et budgets.
4. Premier appel — chat completion sur GPU souverain QC
Endpoint OpenAI-compatible. Démarrez avec `secuai-local-large` (Qwen3.5-35B sur V100S à OVH Beauharnois, 100 % souverain Québec) — le modèle souverain est accessible dès le plan Pro. `secuai-claude-haiku` est inclus sur le plan Free pour tester sans engagement.
Exemples multi-langage
Choisissez le langage qui vous convient — la requête HTTP est identique. Modèle utilisé : `secuai-local-large` (GPU V100S, OVH Beauharnois, 100 % souverain Québec).
curl https://api.secuai.ca/v1/chat/completions \
-H "Authorization: Bearer sk-secuai-..." \
-H "Content-Type: application/json" \
-d '{
"model": "secuai-local-large",
"messages": [{"role": "user", "content": "Bonjour"}]
}'from openai import OpenAI
client = OpenAI(
api_key="sk-secuai-...",
base_url="https://api.secuai.ca/v1",
)
# secuai-local-large = Qwen3.5-35B sur GPU V100S
# à OVH Beauharnois (Québec, 100 % souverain).
resp = client.chat.completions.create(
model="secuai-local-large",
messages=[{"role": "user", "content": "Bonjour"}],
)
print(resp.choices[0].message.content)const res = await fetch("https://api.secuai.ca/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SECUAI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
// secuai-local-large = Qwen3.5-35B sur V100S Québec
model: "secuai-local-large",
messages: [{ role: "user", content: "Bonjour" }],
}),
});
const data = await res.json();
console.log(data.choices[0].message.content);package main
import (
"context"
"fmt"
"github.com/sashabaranov/go-openai"
)
func main() {
cfg := openai.DefaultConfig("sk-secuai-...")
cfg.BaseURL = "https://api.secuai.ca/v1"
client := openai.NewClientWithConfig(cfg)
resp, _ := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
// secuai-local-large = Qwen3.5-35B sur V100S Québec
Model: "secuai-local-large",
Messages: []openai.ChatCompletionMessage{
{Role: "user", Content: "Bonjour"},
},
},
)
fmt.Println(resp.Choices[0].Message.Content)
}Streaming SSE
Pour les réponses temps réel, ajoutez `stream: true`.
from openai import OpenAI
client = OpenAI(
api_key="sk-secuai-...",
base_url="https://api.secuai.ca/v1",
)
stream = client.chat.completions.create(
model="secuai-claude-sonnet",
messages=[{"role": "user", "content": "Explique la Loi 25"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta
if delta.content:
print(delta.content, end="", flush=True)Aller plus loin
La documentation API complète arrive en Phase 2. En attendant :
Prêt à essayer ?
5 000 tokens gratuits chaque mois, sans carte de crédit. Plan Free permanent.