Vai al contenuto

Developer documentation

Documentație LongDay

API OpenAI compatible cu Claude, GPT, Gemini 3.1 și 100+ modele. SchimbibaseURL, păstrezi codul. Facturare în MDL, deductibilă, conformă GDPR + Legea RM 195/2024.

OpenAI compatibleEndpoint: https://api.longday.io/v1Factură MDL via e-Factura

Pas 1

Quickstart — 5 minute de la zero la primul răspuns

Trei pași: cont nou, cheie API, primul apel. Fără PR de aprobat, fără ceremonie.

1

Creează cont + cheie API

Te înregistrezi la /signup (email companie + parolă sau Google OAuth). În cabinet la /keys generezi o cheie API — tokenul complet se afișează doar o dată la creare.

Recomandat: o cheie pentru fiecare proiect, cu max_budget conservator (ex: $20/lună).

2

Setează baseURL în SDK

LongDay răspunde la endpoint-ul https://api.longday.io/v1. Codul tău existent merge cu o singură modificare:

Node.js
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ROUTER_API_KEY,
  baseURL: "https://api.longday.io/v1",
});
Python
from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ROUTER_API_KEY"],
    base_url="https://api.longday.io/v1",
)
cURL
export ROUTER_API_KEY="rk_..."
export ROUTER_BASE_URL="https://api.longday.io/v1"
3

Primul apel chat completion

Folosește un model din /models. Exemplu cu Claude Sonnet 4.6:

Node.js
const response = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [
    { role: "user", content: "Salut! Răspunde scurt în română." }
  ],
  max_completion_tokens: 500,
});

console.log(response.choices[0]?.message?.content);
Python
response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[
        {"role": "user", "content": "Salut! Răspunde scurt în română."}
    ],
    max_completion_tokens=500,
)

print(response.choices[0].message.content)
cURL
curl https://api.longday.io/v1/chat/completions \
  -H "Authorization: Bearer $ROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [
      { "role": "user", "content": "Salut! Răspunde scurt în română." }
    ],
    "max_completion_tokens": 500
  }'

Arhitectură

Cum funcționează

LongDay e un AI gateway: un proxy OpenAI-compatible care normalizează cererile către providerii upstream (Anthropic, OpenAI, Google, Mistral, etc.), tracking-uiește costul cu markup, și emite factură lunară în MDL.

Aplicația ta
OpenAI SDK
Router gateway
api.longday.io/v1
Provider AI
Anthropic / OpenAI / Google
Răspuns + cost
usage + markup
Factură MDL
e-Factura lunar

Tot traficul AI trece prin gateway-ul nostru pe servere OVH în Europa. Logăm doar metadata (model, tokens, latency, request_id). Conținutul mesajelor nu e persistat decât dacă activezi explicit prompt logging.

Catalog

Modele disponibile

100+ modele de la providerii majori, accesibile cu același SDK. Catalogul live la /models.

Securitate

Autentificare + chei API

Cum creezi o cheie

  1. Login în cabinet la /keys
  2. Click Cheie nouă, alegi nume + buget lunar
  3. Selectezi whitelist de modele (opțional, default = toate)
  4. Copiezi tokenul — se afișează O SINGURĂ DATĂ

Header de autentificare

Authorization: Bearer rk_live_...

Tokenul începe cu rk_live_ (productie) sau rk_test_ (sandbox).

Best practices

  • O cheie per proiect (dev, staging, prod separate).
  • Setează max_budget conservator — limita se aplică la nivel de cheie.
  • Rotește cheile la 90 zile sau imediat după orice expunere (chat, commit, screenshot).
  • Nu pune cheia în frontend / mobile — folosește un proxy server-side.
  • Whitelist modele scumpe (Claude Opus, GPT-4o, Veo 3) pentru a evita cost runaway.

Integrări

Compatibilitate SDK

LongDay e OpenAI compatible la nivel de schema. Orice client care vorbește OpenAI API funcționează cu o modificare de baseURL.

OpenAI Node

JavaScript / TypeScript

schimbi doar baseURL — restul codului identic.

OpenAI Python

Python 3.9+

client = OpenAI(base_url=...) și gata.

OpenAI .NET

C# / .NET 8+

OpenAIClientOptions.Endpoint = api.longday.io/v1

OpenAI Go

Go 1.21+

config.BaseURL = api.longday.io/v1

OpenAI Java

Java 17+

OpenAiService cu custom OkHttp baseUrl.

OpenAI PHP

PHP 8.1+

OpenAI::client(...)->baseUri(api.longday.io/v1)

LangChain JS

JavaScript

ChatOpenAI({ configuration: { baseURL } })

LangChain Python

Python

ChatOpenAI(base_url=...)

LlamaIndex

Python

OpenAI(api_base=...) sau OpenAILike pentru modele non-OpenAI.

Vercel AI SDK

JavaScript

createOpenAI({ baseURL }) — funcționează cu streamText / generateText.

Cloudflare Workers AI

JavaScript

fetch direct sau OpenAI client în Workers runtime.

n8n

low-code

credential OpenAI custom + Base URL override (legacy, dar funcțional).

Reference

Endpoint principal — /v1/chat/completions

99% din requesturi merg aici. Schema identică cu OpenAI Chat Completions API.

Request schema

POST https://api.longday.io/v1/chat/completions
Authorization: Bearer <ROUTER_API_KEY>
Content-Type: application/json

{
  "model": "claude-sonnet-4-6",       // obligatoriu — vezi /models
  "messages": [                         // obligatoriu
    { "role": "system", "content": "..." },
    { "role": "user",   "content": "..." }
  ],
  "max_completion_tokens": 1000,        // opțional, default model
  "temperature": 0.7,                   // opțional, 0-2
  "top_p": 1,                           // opțional
  "stream": false,                      // true = SSE streaming
  "tools": [...],                       // function calling (OpenAI format)
  "tool_choice": "auto",
  "response_format": { "type": "json_object" }
}

Response schema

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1747600000,
  "model": "claude-sonnet-4-6",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "..." },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 128,
    "total_tokens": 170,
    "cost_usd": 0.00234              // cost client-facing (post-markup)
  }
}

Streaming SSE

const stream = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [{ role: "user", content: "Scrie un haiku." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Limite

Rate limits + Budget controls

Rate limits

  • Free: 10 req/min, 100 req/zi
  • Starter (€5): 60 req/min, 5K req/zi
  • Pro (€20): 300 req/min, 50K req/zi
  • Business (€80): 1500 req/min, fără cap zilnic
  • Enterprise: negociat

Header-uri returnate: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After.

Plafon per cheie (max_budget)

Fiecare cheie are un plafon USD lunar. Când îl atingi, requesturile primesc 402.

  • Setezi la creare sau editezi din /keys
  • Resetare automată în prima zi din lună
  • Alertă email la 80% și 100%
  • Limita e client-facing USD (cu markup inclus)

Evenimente

Webhooks

Configurabile la /settings/webhooks. Notificări HMAC-SHA256 signed pentru evenimente critice.

Event typeCând
wallet.low_balanceWallet sub $5 sau sub 10% din ultimul top-up
wallet.depletedWallet ajuns la $0, requesturi blocate
key.budget_exceededCheie a depășit max_budget lunar
key.budget_warningCheie la 80% din max_budget
invoice.generatedFactură MDL nouă emisă (lunar)
invoice.paidFactură achitată prin Stripe / transfer
model.deprecatedModel upstream va fi retras în 30 zile

Debugging

Erori frecvente — top 10

HTTPÎnseamnăSoluție
400Request invalid (JSON malformat, model lipsă, parametru greșit).Verifică schema: model, messages, max_completion_tokens.
401Cheie absentă, invalidă sau revocată.Confirmă header Authorization: Bearer <key> și că nu e expirată.
402Wallet insuficient sau buget cheie depășit.Alimentează wallet la /billing sau ridică max_budget pe cheie.
403Modelul nu e whitelisted pe cheia respectivă.Adaugă modelul în whitelist la /keys → editează cheia.
404Model inexistent în catalog sau endpoint greșit.Verifică numele exact la /models live (case sensitive).
408Timeout la provider upstream (rar).Retry cu exponential backoff, eventual model fallback.
429Rate limit local sau quota upstream.Respectă headerele Retry-After, scade concurența, sau ridică planul.
500Eroare internă gateway.Retry 1-2 cu backoff. Dacă persistă, semnalează la suport cu request_id.
502 / 503Provider upstream indisponibil temporar.Configurează fallback model (claude-sonnet ↔ gpt-5.4).
504Stream timeout (modele lente sau prompt foarte lung).Trece pe streaming SSE sau scurtează contextul.

Fiecare răspuns include header x-router-request-id. Pentru suport, trimite request_id-ul + timestamp.

Billing

Facturare MDL via e-Factura

Cum funcționează factura

  • Factură fiscală emisă lunar prin mfinante.gov.md (e-Factura).
  • Sumă în MDL, cu TVA conform legii — deductibilă pentru SRL-uri moldovenești.
  • Plată Stripe (card) sau transfer bancar IBAN MD.
  • Top-up wallet de la $5 minim, fără topup fee.
  • Operator: MEGA PROMOTING S.R.L., IDNO 1019600021765, s. Dănceni, r-l Ialoveni, MD-6814.

Detalii complete la /legal/efactura.

Help

Suport

Email

suport@longday.io

Răspuns < 4h zile lucrătoare

Telegram

@megapromoting_router

Live chat tehnic, ro/ru/en

Program

Lun-Vin · 9:00-18:00

EET (Chișinău). Incidente prod 24/7 pe Enterprise.

Approfundare

Referință completă pe subiecte

20 ghiduri detaliate: quickstart, autentificare, OpenAI compatible, endpoint per endpoint, erori, rate limits, key management, billing, security și migrare de la OpenAI sau OpenRouter.

Quickstart LongDay

Primii pasi: signup, cheie API, baseURL și primul chat completion.

Authentication LongDay

Bearer token cu cheia API Router. Erori 401/403 și gestionare.

OpenAI compatible — ce înseamnă in LongDay

Ce endpoint-uri OpenAI sunt suportate prin LongDay și ce diferente sa astepti.

Chat completions docs

POST /v1/chat/completions: campuri, streaming, tool calling, JSON mode.

Images docs

POST /v1/images/generations cu gpt-image-2 când este disponibil pe cheia ta.

Embeddings docs

POST /v1/embeddings cu text-embedding-3-small și large.

Realtime docs

Modele realtime prin gateway: WebSocket / WebRTC bridge.

Audio docs (TTS și transcription)

POST /v1/audio/speech și /v1/audio/transcriptions când modelele audio sunt disponibile.

Erori HTTP LongDay

401, 403, 429, 5xx — ce înseamnă și cum le gestionezi.

Rate limits docs

RPM și TPM per cheie; cum gestionezi 429.

Key management docs

Creare, rotare, block și audit chei API in cabinet.

Billing docs

Wallet, top-up, facturi, plata SEPA și card local.

Security docs

DPA, audit log, PII filtering, key security, incident response.

Migrare de la OpenAI direct

Cum migrezi de la cheia OpenAI direct la LongDay fără schimbari de cod.

Migrare de la OpenRouter

Cum migrezi de la OpenRouter la LongDay pentru billing local.

Anthropic Messages API compat — /v1/messages

LongDay expune endpoint /v1/messages nativ compatibil cu Anthropic Messages API. Folosești Claude Code, Cursor, Zed cu cheia LongDay direct.

Migrare de la Anthropic direct la LongDay

Cum treci de la cheia Anthropic direct la LongDay pentru Claude Code, Cursor, Zed — cu billing MDL/EUR și e-Factura MD.

Migrare de la Kluster.ai (sunset iun 2026) la LongDay

Kluster.ai a fost achiziționat de MITO și oprit pe 9 iun 2026. Migrează la LongDay în 10 minute cu endpoint OpenAI-compat.

Migrare de la Portkey (post-PANW) la LongDay

Portkey a fost achiziționat de Palo Alto Networks (29 mai 2026). Migrează la LongDay pentru billing local MDL/EUR și stabilitate.

Batch API — /v1/batches la 50% preț

Rulezi batch async jobs (clasificare, enrichment, evaluare) cu 50% discount vs real-time. SLA 24h.

Documentație LongDay — OpenAI compatible API | LongDay