Référence API GoLynk
Documentation complète de l'API REST publique GoLynk — authentification, endpoints, paramètres et exemples.
Sur cette page
URL de base
Toutes les requêtes API sont adressées à l'URL suivante :
https://golynk.ch/api/v1
L'API supporte uniquement HTTPS. Les requêtes HTTP seront redirigées vers HTTPS.
Authentification
L'API GoLynk utilise des clés API Bearer. Chaque clé est générée dans votre espace GoLynk (Paramètres → Intégrations → Clés API) et associée à votre compte.
Format de la clé
Les clés API ont le format glk_live_[32 caractères]. La partie après le préfixe est hashée en SHA-256 en base de données — GoLynk ne peut pas reconstituer votre clé après sa création.
Utilisation
Incluez votre clé dans l'en-tête HTTP Authorization de chaque requête :
Authorization: Bearer glk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Générer une clé API
.env) ou un gestionnaire de secrets (HashiCorp Vault, AWS Secrets Manager, etc.).Rate limiting
L'API est limitée à 120 requêtes par minute par clé API. Les en-têtes de réponse indiquent votre consommation :
| En-tête | Description |
|---|---|
X-RateLimit-Limit | Limite totale (120) |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre actuelle |
X-RateLimit-Reset | Timestamp Unix de la prochaine réinitialisation |
Retry-After | Secondes à attendre (présent uniquement en cas de dépassement 429) |
En cas de dépassement, l'API retourne 429 Too Many Requests. Attendez la durée indiquée par Retry-After avant de réessayer.
Endpoints
Tous les endpoints retournent du JSON (Content-Type: application/json). Les listes sont paginées par défaut (page 1, 20 éléments).
Clients
name (string), email (string, optionnel).Factures
status (paid, pending, overdue), from/to (ISO 8601), client_id.Comptabilité
from/to, compte (numéro de compte), limit (max 100).Projets & Produits
Autres
to, subject, body (HTML ou texte).Paramètres communs
Ces paramètres de query string sont disponibles sur tous les endpoints de type liste :
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
page | integer | 1 | Numéro de page (commence à 1) |
limit | integer | 20 | Éléments par page (max 100) |
from | string | — | Date de début ISO 8601 (ex: 2026-01-01) |
to | string | — | Date de fin ISO 8601 (ex: 2026-12-31) |
search | string | — | Recherche textuelle dans les champs pertinents |
status | string | — | Filtre par statut (valeurs selon l'endpoint) |
Format de réponse
// Succès (liste paginée)
{
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 142,
"pages": 8
}
}
// Succès (objet unique)
{
"data": { ... }
}
// Erreur
{
"error": "Message d'erreur",
"code": "ERROR_CODE"
}
Codes d'erreur HTTP
| Code | Statut | Cause |
|---|---|---|
| 400 | Bad Request | Corps de requête invalide ou paramètre manquant |
| 401 | Unauthorized | Clé API manquante, invalide ou révoquée |
| 403 | Forbidden | Plan insuffisant pour cet endpoint |
| 404 | Not Found | Ressource introuvable (mauvais ID) |
| 429 | Too Many Requests | Limite de rate limit atteinte (120 req/min) |
| 500 | Internal Server Error | Erreur serveur interne. Contactez support@golynk.ch |
Exemples de code
cURL
# Liste des clients
curl -X GET "https://golynk.ch/api/v1/clients?page=1&limit=10" \
-H "Authorization: Bearer glk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json"
# Créer un client
curl -X POST "https://golynk.ch/api/v1/clients" \
-H "Authorization: Bearer glk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"name":"Acme SA","email":"contact@acme.ch","address":"Rue de Genève 1, 1201 Genève"}'
JavaScript (fetch)
const API_KEY = 'glk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const BASE_URL = 'https://golynk.ch/api/v1';
// Récupérer les factures en retard
const response = await fetch(`${BASE_URL}/factures?status=overdue&limit=50`, {
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
});
const { data, pagination } = await response.json();
console.log(`${pagination.total} factures en retard`);
data.forEach(invoice => {
console.log(`${invoice.number} - ${invoice.client_name} - CHF ${invoice.total}`);
});
Python
import requests
API_KEY = "glk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
BASE_URL = "https://golynk.ch/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}
# Récupérer les écritures du mois
params = {"from": "2026-04-01", "to": "2026-04-30", "limit": 100}
r = requests.get(f"{BASE_URL}/ecritures", headers=headers, params=params)
r.raise_for_status()
entries = r.json()["data"]
total = sum(e["amount"] for e in entries if e["type"] == "credit")
print(f"Total crédits avril 2026 : CHF {total:.2f}")