> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Phaseo Gateway base URL: https://api.phaseo.app/v1. Send `Authorization: Bearer $PHASEO_API_KEY` with every request.
> Model IDs look like `provider/model`, for example `openai/gpt-6-astra`. Do not guess IDs: list them with `GET /v1/models` or check https://phaseo.app/models. `phaseo/free` routes to an available free model and needs no wallet balance.
> For new text integrations prefer `POST /v1/responses`. `POST /v1/chat/completions` (OpenAI format) and `POST /v1/messages` (Anthropic format) suit existing code.
> The full API contract is https://phaseo.app/docs/openapi/v1/openapi.yaml. Official SDKs: `@phaseo/sdk` (TypeScript) and `phaseo` (Python), plus Go, C#, PHP, Ruby and Rust.
> Search these docs over MCP at https://phaseo.app/docs/mcp, and install Phaseo skills with `npx skills add https://phaseo.app/docs`. If a page is wrong or out of date, report it with the MCP `submit_feedback` tool.
> Manage Phaseo accounts with the `phaseo` CLI (`npm install -g @phaseo/cli`, then `phaseo login` or `phaseo login --device-code`), the `/v1` Management API or the MCP server at `https://mcp.phaseo.app/mcp?access=manage`. Do not send users to the dashboard for account tasks. A person is still needed for sign-up, approving a sign-in, paying the first top-up on the checkout link that `phaseo credits add` returns when no card is saved, confirming each saved-card top-up from the emailed link, and account security (password, MFA, passkeys). Create API keys with `phaseo keys create --name <name> --json`; never guess one. Credit top-ups need `phaseo login --scopes billing:write` first. Task map: https://phaseo.app/docs/v1/developers/manage-from-an-agent.md.

# Installer un SDK client

> Installez un SDK client Phaseo, définissez votre clé API et envoyez une première requête.

Ajoutez le paquet Phaseo de votre langage, définissez `PHASEO_API_KEY` et envoyez votre première requête. La [présentation](https://phaseo.app/docs/fr/v1/sdk-reference/client/overview.md) indique le registre et la version publiée de chaque paquet.

**1. Installer le paquet**

> [tab] TypeScript
>
> ```bash title="npm" theme={null}
> npm install @phaseo/sdk
> ```
>
> ```bash title="pnpm" theme={null}
> pnpm add @phaseo/sdk
> ```
>
> ```bash title="yarn" theme={null}
> yarn add @phaseo/sdk
> ```
>
> Il vous faut Node.js 18 ou une version ultérieure, et TypeScript 4.5 ou une version ultérieure pour les définitions de types.

> [tab] Python
>
> ```bash title="pip" theme={null}
> pip install phaseo
> ```
>
> ```bash title="uv" theme={null}
> uv add phaseo
> ```
>
> Il vous faut Python 3.10 ou une version ultérieure. Pour la [voix en temps réel](https://phaseo.app/docs/fr/v1/sdk-reference/client/audio-realtime.md), installez l’extra : `pip install "phaseo[realtime]"`.

> [tab] Go
>
> ```bash theme={null}
> go get github.com/phaseoteam/Phaseo/packages/sdk/sdk-go/v3@latest
> ```
>
> Il vous faut Go 1.23 ou une version ultérieure. Importez le chemin de module `v3` :
>
> ```go theme={null}
> import phaseo "github.com/phaseoteam/Phaseo/packages/sdk/sdk-go/v3"
> ```

> [tab] C#
>
> ```bash theme={null}
> dotnet add package Phaseo.Sdk
> ```
>
> Il vous faut .NET 8 ou une version ultérieure. Le client se trouve dans l’espace de noms `PhaseoSdk`.

> [tab] PHP
>
> ```bash theme={null}
> composer require phaseo/sdk
> ```
>
> Il vous faut PHP 8.1 ou une version ultérieure, ainsi que Composer. Composer installe aussi Guzzle 7. La classe du client est `Phaseo\Sdk\Phaseo`.

> [tab] Ruby
>
> ```bash title="gem" theme={null}
> gem install phaseo_sdk
> ```
>
> ```ruby title="Gemfile" theme={null}
> gem "phaseo_sdk"
> ```
>
> Il vous faut Ruby 3.0 ou une version ultérieure. Chargez-le avec `require 'phaseo_sdk'` ; le client est `PhaseoSdk::Phaseo`.

> [tab] Java
>
> L’artefact `3.0.0` publié sur [Maven Central](https://repo.maven.apache.org/maven2/app/phaseo/phaseo-sdk/3.0.0/) contient l’ancienne API, sans les API actuelles de nouvelles tentatives, de métadonnées de réponse et de vérification des paramètres. Pour utiliser le SDK actuel, compilez la source épinglée. Il vous faut Java 17 ou une version ultérieure, Maven 3.8 ou une version ultérieure, et Git.
>
> ```bash theme={null}
> git clone https://github.com/phaseoteam/Phaseo.git
> cd Phaseo
> git checkout 1ff1119f41ceb3ac2c85ed605f6e1c4beca6e011
> mvn -f packages/sdk/sdk-java/pom.xml -DskipTests install
> ```
>
> Maven installe `app.phaseo:phaseo-sdk:3.0.0` dans votre dépôt local, avec sa dépendance Jackson. Ajoutez ensuite la dépendance :
>
> ```xml theme={null}
> <dependency>
>   <groupId>app.phaseo</groupId>
>   <artifactId>phaseo-sdk</artifactId>
>   <version>3.0.0</version>
> </dependency>
> ```

> [tab] Rust
>
> ```toml title="Cargo.toml" theme={null}
> [dependencies]
> phaseo = "0.2"
> serde_json = "1"
> ```
>
> ```bash title="cargo" theme={null}
> cargo add phaseo@0.2 serde_json
> ```
>
> Il vous faut Rust 1.86 ou une version ultérieure. Le crate est en version antérieure à `1.0` et son API peut encore changer d’une version mineure à l’autre : épinglez donc une version mineure compatible en production.

**2. Définir votre clé API**

Créez une clé avec `phaseo keys create` dans la [CLI Phaseo](https://phaseo.app/docs/fr/v1/guides/integrations/phaseo-cli.md) ou dans [Clés API](https://phaseo.app/settings/keys), puis exportez-la :

```bash title="bash" theme={null}
export PHASEO_API_KEY="phaseo_v1_sk_<kid>_<secret>"
```

```powershell title="PowerShell" theme={null}
$env:PHASEO_API_KEY = "phaseo_v1_sk_<kid>_<secret>"
```

Gardez la clé sur votre serveur. Ne l’intégrez pas dans une application de bureau, mobile, de navigateur ou tout autre client distribué.

**3. Envoyer une requête**

```typescript TypeScript theme={null}
import Phaseo from "@phaseo/sdk";

const client = new Phaseo({
  apiKey: process.env.PHASEO_API_KEY!,
});

const response = await client.generateText({
  model: "openai/gpt-6-astra",
  messages: [{ role: "user", content: "Hello!" }],
});

console.log(response.choices[0].message.content);
```

```python Python theme={null}
from phaseo import Phaseo
import os

client = Phaseo(api_key=os.environ["PHASEO_API_KEY"])

response = client.generate_text(
    {
        "model": "openai/gpt-6-astra",
        "messages": [{"role": "user", "content": "Hello!"}],
    }
)

print(response["choices"][0]["message"]["content"])
```

```go Go theme={null}
client, err := phaseo.NewFromEnv() // lit PHASEO_API_KEY
if err != nil {
  panic(err)
}

chat, err := client.GenerateText(context.Background(), phaseo.ChatCompletionsRequest{
  Model:    "openai/gpt-6-astra",
  Messages: []map[string]interface{}{{"role": "user", "content": "Hello!"}},
})
if err != nil {
  panic(err)
}
fmt.Println(chat["choices"])
```

```csharp C# theme={null}
using PhaseoSdk;

var client = new Phaseo(); // lit PHASEO_API_KEY

var chat = await client.GenerateText(new Dictionary<string, object>
{
    ["model"] = "openai/gpt-6-astra",
    ["messages"] = new[]
    {
        new Dictionary<string, object> { ["role"] = "user", ["content"] = "Hello!" },
    },
});
```

```php PHP theme={null}
<?php
require 'vendor/autoload.php';

use Phaseo\Sdk\Phaseo;

$client = new Phaseo(); // lit PHASEO_API_KEY

$chat = $client->generateText([
    'model' => 'openai/gpt-6-astra',
    'messages' => [['role' => 'user', 'content' => 'Hello!']],
]);

echo $chat['choices'][0]['message']['content'];
```

```ruby Ruby theme={null}
require 'phaseo_sdk'

client = PhaseoSdk::Phaseo.new # lit PHASEO_API_KEY

chat = client.generate_text(
  model: 'openai/gpt-6-astra',
  messages: [{ role: 'user', content: 'Hello!' }]
)
```

```java Java theme={null}
import app.phaseo.sdk.Phaseo;
import java.util.List;
import java.util.Map;

Phaseo client = new Phaseo(System.getenv("PHASEO_API_KEY"));

var chat = client.createChatCompletion(Map.of(
    "model", "openai/gpt-6-astra",
    "messages", List.of(Map.of("role", "user", "content", "Hello!"))
));
System.out.println(chat.path("choices").path(0).path("message").path("content").asText());
```

```rust Rust theme={null}
use phaseo::Phaseo;
use serde_json::json;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Phaseo::from_env()?;
    let response = client.chat_completions(&json!({
        "model": "openai/gpt-6-astra",
        "messages": [{ "role": "user", "content": "Hello!" }]
    }))?;

    println!("{}", response.body);
    Ok(())
}
```

Si vous ne passez pas de clé, le client lit lui-même `PHASEO_API_KEY`.

## Pointer le client vers une autre URL de base

```typescript TypeScript theme={null}
import Phaseo from "@phaseo/sdk";

const client = new Phaseo({
  apiKey: "your-api-key",
  baseUrl: "https://api.phaseo.app/v1",
  timeoutMs: 30_000,
});
```

```python Python theme={null}
from phaseo import Phaseo

client = Phaseo(
    api_key="your-api-key",
    base_url="https://api.phaseo.app/v1",
    timeout=30.0,
)
```

```go Go theme={null}
client := phaseo.New(os.Getenv("PHASEO_API_KEY"), "https://api.phaseo.app/v1")
```

```rust Rust theme={null}
let client = Phaseo::from_env()?.with_base_url("http://localhost:8787/v1")?;
```

Le délai d’expiration est en millisecondes en TypeScript (`timeoutMs`) et en secondes en Python (`timeout`). En Rust, vous pouvez aussi définir `PHASEO_BASE_URL` (par exemple `http://localhost:8787/v1`) pour que `Phaseo::from_env()` le prenne en compte. Rust n’accepte le HTTP simple que si l’hôte est exactement `localhost` ou une adresse IP de bouclage ; les endpoints distants doivent utiliser HTTPS.

La [présentation](https://phaseo.app/docs/fr/v1/sdk-reference/client/overview.md#configure-the-client) liste toutes les options par langage. Consultez ensuite [Utilisation](https://phaseo.app/docs/fr/v1/sdk-reference/client/usage.md) pour un exemple par endpoint, ou la [référence API](https://phaseo.app/docs/fr/v1/api-reference/introduction.md) pour chaque champ.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.