Ontwikkelaars

Ontvang elke nieuwe bloo.Cards-vermelding in uw systemen.

Een alleen-lezen API en ondertekende webhooks om uw contacten, scans en formulieren aan uw tools te koppelen. Eenvoudig, veilig, gehost in de EU.

Alleen uitgaand · alleen-lezen · gehost in de EU

Drie geheimen, drie rollen

GeheimRolOpmerkingen
bc_live_…API-sleutel: identificeert uw bedrijf, alleen-lezenAangemaakt in het gedeelte Ontwikkelaars. Eén keer getoond, SHA-256-vingerafdruk opgeslagen, intrekbaar.
whsec_…Ondertekeningsgeheim voor webhooksOm te verifiëren dat de webhook echt van bloo.Cards komt (HMAC-SHA256).
CRM-inloggegevensVersleuteld bewaard, nooit opnieuw getoondVersleuteling per organisatie (BlooCrypto). Alleen gebruikt voor uitgaande verzending naar uw CRM.

De /v1-API Vroege toegang

Basis: https://bloo.cards/v1 · Authenticatie: header Authorization: Bearer bc_live_… (nooit in de URL).

MethodeRol
GET /v1/meBedrijf en bereik van de sleutel (verbindingstest)
GET /v1/contacts?since=…Nieuwe contacten sinds een tijdstip (ISO 8601)
GET /v1/hooksLijst van uw webhook-abonnementen
POST /v1/hooksEen abonnement aanmaken { url, events[] } (geeft het geheim één keer terug)
DELETE /v1/hooks/{id}Een abonnement uitschakelen

Voorbeeld — de verbinding testen

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 Vroege toegang

Abonneer een URL op events; bloo.Cards stuurt daar bij elke gebeurtenis een ondertekende POST, met herpogingen bij mislukking.

Events

contact.exchanged · lead.ocr_scanned · form.submitted · booking.requested · contact.deleted

Ontvangen envelop

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"
    }
  }
}

De handtekening verifiëren (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)

Publieke kaartgegevens

Publieke kaarten stellen hun gegevens al beschikbaar als JSON-LD en via ?format=json, zonder authenticatie. Ideaal voor agents en indexering. Zie bloo.Cards voor AI.

Klaar om bloo.Cards te koppelen?

Maak uw sleutel aan in het gedeelte Ontwikkelaars van uw account, of vraag vroege toegang aan. Zie de automatiseringen.

Mijn API-sleutel aanmaken