# Organisations | Docs AudioDN

> Points de terminaison API pour récupérer et mettre à jour les paramètres, le branding, les webhooks et la configuration de votre organisation AudioDN.

Source: https://audiodeliverynetwork.com/fr/docs/api/organizations/

---

# Organisations

Les organisations sont des entités de premier niveau qui contiennent des collections et des pistes. Gérez les paramètres d’organisation, les thèmes et les configurations de lecteur.

Les réponses incluent deux compagnons en lecture seule de `player_color` : `player_color_light` (ajusté pour rester lisible sur un fond clair) et `player_color_dark` (ajusté pour un fond sombre). Ils sont dérivés de `player_color` en décalant la luminosité jusqu’à ce que chacun atteigne un contraste minimum, et ne peuvent pas être définis directement.

#### webhook\_url est en lecture seule ici

Le champ `webhook_url` est renvoyé pour référence mais se configure dans le panneau **Settings → Webhook** du tableau de bord, pas via cette API. Voir la documentation du [webhook Track Processing](/docs/webhooks/track-processing) pour le payload et le comportement.

GET `/v1/organization/:organization_id`

Renvoie les détails d'une organisation spécifique

#### Paramètres

| Nom | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `organization_id` | uuid | Obligatoire | L'identifiant de l'organisation à récupérer (paramètre de chemin) |

#### Exemple de requête

    

```
curl -X GET "https://api.audiodelivery.net/v1/organization/ORG_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```
const response = await fetch('https://api.audiodelivery.net/v1/organization/ORG_ID', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
  }
});

const data = await response.json();
```

```
import Foundation

func performRequest() async throws {
    var request = URLRequest(url: URL(string: "https://api.audiodelivery.net/v1/organization/ORG_ID")!)
    request.httpMethod = "GET"
    request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
    let (data, _) = try await URLSession.shared.data(for: request)
    let json = try JSONSerialization.jsonObject(with: data) as! [String: Any]
    // use json
}
```

```
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.*

val client = OkHttpClient()

suspend fun performRequest(): String = withContext(Dispatchers.IO) {
    val request = Request.Builder()
        .url("https://api.audiodelivery.net/v1/organization/ORG_ID")
        .addHeader("Authorization", "Bearer YOUR_API_KEY")
        .build()
    val response = client.newCall(request).execute()
    response.body?.string() ?: error("Empty response body")
}
```

```
import 'dart:convert';
import 'package:http/http.dart' as http;

Future<Map<String, dynamic>> performRequest() async {
  final response = await http.get(
    Uri.parse("https://api.audiodelivery.net/v1/organization/ORG_ID"),
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
    },
  );
  if (response.statusCode < 200 || response.statusCode >= 300) {
    throw Exception('Request failed: ${response.statusCode}');
  }
  return jsonDecode(response.body) as Map<String, dynamic>;
}
```

#### Réponse

```
{
"ok": true,
"api_request_id": "uuid",
"organization_id": "uuid",
"organization": {
  "id": "uuid",
  "name": "string",
  "theme": [],
  "is_theme_overridable": true,
  "is_cover_overridable": true,
  "player_color": "string",
  "player_color_light": "string | null",
  "player_color_dark": "string | null",
  "player_subtitle": "string",
  "webhook_url": "string | null"
}
}
```

PUT `/v1/organization/:organization_id`

Met à jour une organisation existante

#### Paramètres

| Nom | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `organization_id` | uuid | Obligatoire | L'identifiant de l'organisation à mettre à jour (paramètre de chemin) |
| `name` | string | Facultatif | Nom de l'organisation |
| `theme` | array of objects | Facultatif | Couleurs extraites des images de couverture. Tableau d'objets couleur avec les valeurs hex, area, lightness, saturation |
| `is_theme_overridable` | boolean | Facultatif | Indique si les couleurs d'image de l'organisation peuvent être remplacées |
| `is_cover_overridable` | boolean | Facultatif | Indique si la couverture de l'organisation peut être remplacée |
| `player_color` | string | Facultatif | Couleur du lecteur pour l'organisation (couleur hexadécimale) |
| `player_subtitle` | string | Facultatif | Sous-titre du lecteur pour l'organisation |

#### Exemple de requête

    

```
curl -X PUT "https://api.audiodelivery.net/v1/organization/ORG_ID" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "My Organization",
  "player_color": "#FF0000"
}'
```

```
const payload = {
  "name": "My Organization",
  "player_color": "#FF0000"
};

const response = await fetch('https://api.audiodelivery.net/v1/organization/ORG_ID', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload)
});

const data = await response.json();
```

```
import Foundation

func performRequest() async throws {
    var request = URLRequest(url: URL(string: "https://api.audiodelivery.net/v1/organization/ORG_ID")!)
    request.httpMethod = "PUT"
    request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    let bodyJSON = """
{
  "name": "My Organization",
  "player_color": "#FF0000"
}
"""
    request.httpBody = bodyJSON.data(using: .utf8)
    let (data, _) = try await URLSession.shared.data(for: request)
    let json = try JSONSerialization.jsonObject(with: data) as! [String: Any]
    // use json
}
```

```
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody

val client = OkHttpClient()

suspend fun performRequest(): String = withContext(Dispatchers.IO) {
    val body = """{
  "name": "My Organization",
  "player_color": "#FF0000"
}""".toRequestBody("application/json".toMediaType())
    val request = Request.Builder()
        .url("https://api.audiodelivery.net/v1/organization/ORG_ID")
        .put(body)
        .addHeader("Authorization", "Bearer YOUR_API_KEY")
        .addHeader("Content-Type", "application/json")
        .build()
    val response = client.newCall(request).execute()
    response.body?.string() ?: error("Empty response body")
}
```

```
import 'dart:convert';
import 'package:http/http.dart' as http;

Future<Map<String, dynamic>> performRequest() async {
  final response = await http.put(
    Uri.parse("https://api.audiodelivery.net/v1/organization/ORG_ID"),
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: jsonEncode({
  "name": "My Organization",
  "player_color": "#FF0000"
}),
  );
  if (response.statusCode < 200 || response.statusCode >= 300) {
    throw Exception('Request failed: ${response.statusCode}');
  }
  return jsonDecode(response.body) as Map<String, dynamic>;
}
```

#### Réponse

```
{
"ok": true,
"api_request_id": "uuid",
"organization_id": "uuid",
"organization": {
  "id": "uuid",
  "name": "string",
  "theme": [],
  "is_theme_overridable": true,
  "is_cover_overridable": true,
  "player_color": "string",
  "player_color_light": "string | null",
  "player_color_dark": "string | null",
  "player_subtitle": "string",
  "webhook_url": "string | null"
}
}
```
