# Asteon AI Gateway

> Én gateway, 20+ AI-leverandører, full prisinnsikt og forbruksrapportering.

Asteon Gateway proxy-er kall til OpenAI, Anthropic, Google, xAI, Mistral, DeepSeek, Replicate, ElevenLabs og 12+ andre leverandører — med automatisk wallet-debet, smart-routing og enhetlig feilformat.

Alle kall krever en `agw_*`-nøkkel. Generer en under [/developers](https://asteon.ai/developers).

**Versjon:** 1.0.0  
**Base-URL:** `https://api.asteon.ai/api`  
**Kontakt:** support@asteon.ai

---

## Autentisering

Alle gateway-kall krever en `agw_*`-nøkkel:

```http
Authorization: Bearer agw_din_nokkel
```

Generer nøkler under [/developers](https://asteon.ai/developers). Forbruks-API-er bruker session-cookie i stedet.

---

## Endepunkter

### `POST /external/{provider}/{path}`

**Proxy-kall til en spesifikk leverandør**  
_Tag: Gateway_

Sender request-en videre til den valgte leverandøren med samme JSON-schema som leverandørens eget API. Wallet-en debiteres når svaret er mottatt og kostnaden er beregnet.

Eksempel: `POST /external/openai/v1/chat/completions` oppfører seg identisk med OpenAI sitt eget endepunkt — bare bytt ut base-URL og nøkkel.

**Parametere:**

- `provider` (path, required): Leverandør-ID (`openai`, `anthropic`, `google`, `xai`, `mistral`, `deepseek`, `groq`, `moonshot`, `openrouter`, `replicate`, `elevenlabs`, `suno`, `leonardo`, `meshy`, `tripo`, `blockade-labs`, `eden-ai`, `firecrawl`, `pixabay`, `huggingface`, `freesound`).
- `path` (path, required): Leverandør-spesifikk sti (f.eks. `v1/chat/completions`).
- `X-Asteon-Project-Id` (header): Valgfri prosjekt-tag. Hvis satt blir kostnaden bokført mot prosjektet i forbruksrapporten. Du må ha rolle på prosjektet — ellers ignoreres taggen.

**Svar:**

- `200` — Leverandørens svar, uendret.
- `401` — (Unauthorized)
- `402` — (PaymentRequired)
- `404` — (NotFound)
- `429` — (RateLimited)
- `503` — (ServiceUnavailable)

### `POST /external/smart/v1/chat/completions`

**Smart-routet chat-completion**  
_Tag: Smart-routing_

Be om en virtuell modell-klasse (f.eks. `best-cheap-llm`, `best-fast-llm`, `best-quality-llm`) og overlat valg av leverandør til Asteon. Returnerer responsen sammen med `X-Smart-Route-Provider` og `X-Smart-Route-Model` i headeren.

**Parametere:**

- `X-Asteon-Project-Id` (header): Valgfri prosjekt-tag. Hvis satt blir kostnaden bokført mot prosjektet i forbruksrapporten. Du må ha rolle på prosjektet — ellers ignoreres taggen.

**Svar:**

- `200` — Beste leverandørs svar, med routing-info i headere.
- `401` — (Unauthorized)
- `402` — (PaymentRequired)
- `503` — (ServiceUnavailable)

### `GET /portal/spend/summary`

**Forbrukssammendrag**  
_Tag: Spend_

Returnerer den innloggede brukerens gateway-forbruk over et tidsrom, gruppert per leverandør og per prosjekt-tag. Krever session-cookie (ikke gateway-nøkkel).

**Parametere:**

- `range` (query): Tidsvindu, f.eks. `7d`, `30d`, `90d`. Maks 365d.

**Svar:**

- `200` — Aggregerte totaler + per-provider og per-project bøtter.
- `401` — (Unauthorized)

### `GET /portal/spend/projects/{id}`

**Forbruk for ett prosjekt**  
_Tag: Spend_

Per-leverandør-nedbryting av spend for et spesifikt prosjekt-uid.

**Parametere:**

- `id` (path, required): Prosjekt-uid (f.eks. `prj_abc123`).
- `range` (query): 

**Svar:**

- `200` — Per-leverandør spend for prosjektet.
- `401` — (Unauthorized)
- `404` — (NotFound)

### `GET /portal/providers/public`

**Offentlig pris-katalog**  
_Tag: Providers_

Returnerer alle leverandører Asteon støtter med modeller, enheter, retail-priser (med 2x-margin) og rå leverandør-priser. Krever ingen autentisering.

**Svar:**

- `200` — Liste over alle leverandører + pris-skjema.

---

## Feilformat

Alle 4xx/5xx-svar normaliseres til:

```json
{
  "error": "Authentication required",
  "code": "UNAUTHORIZED"
}
```

---

_© 2026 Asteon — generert fra OpenAPI 3.1 spec._
