API et webhooks bloo.Cards pour les développeurs
Recevez chaque nouvelle entrée bloo.Cards dans vos systèmes. L'API /v1 permet de consulter vos données de contacts sans les modifier. Elle permet également de créer, consulter et supprimer vos abonnements webhook, signés, pour brancher vos contacts, scans et formulaires sur vos outils. Votre clé bloo.Cards identifie votre société. Pour les comptes société Premium et Corporate. Hébergé dans l'UE.
Envoi uniquement · Premium et Corporate · hébergé dans l'UE
Trois secrets, trois rôles
| Secret | Rôle | Notes |
|---|---|---|
bc_live_… | Clé API bloo.Cards : identifie votre société ; consultation de vos données de contacts sans modification, plus gestion de vos abonnements webhook | Créée dans la section Développeurs. Affichée une seule fois, empreinte SHA-256 stockée, révocable. |
whsec_… | Secret de signature des webhooks | Sert à vérifier que le webhook vient bien de bloo.Cards (HMAC-SHA256). |
| Identifiants CRM | Conservés chiffrés, jamais réaffichés | Chiffrement par organisation (BlooCrypto). Utilisés seulement pour l'envoi sortant vers votre CRM. |
L'API /v1 Disponible (Premium, Corporate)
Base : https://bloo.cards/v1 · Authentification : en-tête Authorization: Bearer bc_live_… (jamais dans l'URL).
| Méthode | Rôle |
|---|---|
GET /v1/me | Société et périmètre de la clé (test de connexion) |
GET /v1/contacts?since=… | Nouveaux contacts depuis un instant (ISO 8601), avec le chiffre d'affaires saisi dans blooCRM, le mini CRM intégré (deals_total, deals_count, last_deal_at) |
GET /v1/hooks | Liste de vos abonnements webhook |
POST /v1/hooks | Créer un abonnement { url, events[] } (renvoie le secret une fois) |
DELETE /v1/hooks/{id} | Désactiver un abonnement |
Exemple : tester la connexion
curl -H "Authorization: Bearer bc_live_xxx" \
https://bloo.cards/v1/me
$ch = curl_init('https://bloo.cards/v1/me');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer bc_live_xxx'],
CURLOPT_RETURNTRANSFER => true,
]);
$me = json_decode(curl_exec($ch), true);
const r = await fetch('https://bloo.cards/v1/me', {
headers: { Authorization: 'Bearer bc_live_xxx' }
});
const me = await r.json();
import requests
r = requests.get(
'https://bloo.cards/v1/me',
headers={'Authorization': 'Bearer bc_live_xxx'})
me = r.json()
Webhooks Disponible (Premium, Corporate)
Abonnez une URL à des événements ; bloo.Cards y envoie un POST signé à chaque occurrence, avec relances en cas d'échec.
Événements
contact.exchanged · lead.ocr_scanned · form.submitted · booking.requested · contact.deleted
Enveloppe reçue
POST https://votre-serveur.example/bloo-webhook
X-Bloo-Signature: t=1790456846,v1=9f2b…c3
{
"id": "evt_ab12cd34",
"type": "contact.exchanged",
"created_at": "2026-09-26T21:00:00Z",
"data": {
"contact": {
"first_name": "Marie", "last_name": "Dupont",
"email": "marie@exemple.be", "company": "Exemple SA",
"job_title": "Directrice", "source": "exchange",
"context": "Salon de Bruxelles"
}
}
}
Vérifier la signature (PHP)
$body = file_get_contents('php://input');
$header = $_SERVER['HTTP_X_BLOO_SIGNATURE'] ?? ''; // t=…,v1=…
parse_str(strtr($header, ',', '&'), $p);
$expected = hash_hmac('sha256', $p['t'] . '.' . $body, $whsec);
if (!hash_equals($expected, $p['v1'] ?? '')) {
http_response_code(401); exit; // signature invalide
}
// OK : traitez $body (JSON)
Les données publiques des cartes
Les cartes publiques exposent déjà leurs données en JSON-LD et via ?format=json, sans authentification. Idéal pour les agents et l'indexation. Un serveur MCP (Model Context Protocol) permet aussi aux assistants IA de rechercher les cartes publiques : https://bloo.cards/mcp. Voir bloo.Cards pour les IA.
Prêt à brancher bloo.Cards ?
Avec un compte société Premium ou Corporate, créez votre clé dans la section Développeurs de votre compte. Un connecteur natif vers votre CRM est possible sur demande. Assistant de connexion pas à pas · Voir les automatisations.
Créer ma clé APIAller plus loin
Nous contacter- Automatisations et webhooksEnvoyez chaque nouveau contact vers n8n, Make, Zapier ou Power Automate.
- Sécurité et hébergement des donnéesHébergement dans l'UE, chiffrement et protection de vos données.
Carte gratuite à vie, tant que le compte reste actif : un compte gratuit inactif depuis plus de 12 mois peut être clôturé après un préavis d'au moins 30 jours envoyé par e-mail. Voir les conditions d'utilisation.