De Blueprint REST API geeft u programmatische toegang tot alle modules van uw platform. Gebruik de API voor eigen integraties, webhooks of automatiseringen. (The Blueprint REST API gives programmatic access to all platform modules — for custom integrations, webhooks and automations.)
Gebruik POST /api/auth/login om een sessie te starten. Het antwoord bevat een httpOnly cookie bp_session dat automatisch bij elk volgend verzoek wordt meegestuurd door de browser.
POST /api/auth/login
Content-Type: application/json
{ "email": "jan@bedrijf.nl", "password": "..." }
# Alle volgende requests kunnen het cookie automatisch gebruiken
GET /api/dashboard/data?table=crm_contactsVoeg een Authorization header toe aan elke request. API-sleutels zijn beschikbaar via Dashboard → Instellingen → Koppelingen.
GET /api/dashboard/data?table=crm_contacts Authorization: Bearer bp_live_xxxxxxxxxxxxxxxxxxxx
https://blueprint-solutions.nl
| Plan | Limiet |
|---|---|
| Starter | 60 verzoeken per minuut |
| Professional | 200 verzoeken per minuut |
| Enterprise | 600 verzoeken per minuut |
Bij overschrijding ontvangt u HTTP 429 Too Many Requests. De header Retry-After geeft aan wanneer u opnieuw kunt proberen.
200 OKVerzoek geslaagd.201 CreatedResource aangemaakt.400 Bad RequestOngeldige invoer of ontbrekende velden.401 UnauthorizedSessie verlopen of ongeldige API-sleutel.403 ForbiddenGeen rechten voor deze actie.404 Not FoundResource niet gevonden.429 Too Many RequestsSnelheidslimiet overschreden.500 Internal Server ErrorServerfout. Probeer opnieuw.Sessie-gebaseerde authenticatie via cookie en API-sleutels voor server-to-server integraties.
/api/auth/loginInloggen / LoginRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| string | ja | |
| password | string | ja |
Voorbeeld verzoek / Example request
POST /api/auth/login
Content-Type: application/json
{
"email": "jan@devries-bouw.nl",
"password": "geheim123"
}Antwoord / Response
{
"success": true,
"user": { "id": "...", "name": "Jan de Vries", "role": "owner" }
}
// Sets httpOnly cookie: bp_session/api/auth/logoutUitloggen / LogoutAntwoord / Response
{ "success": true }
// Clears bp_session cookieContacten, deals en activiteiten beheren.
/api/dashboard/data?table=crm_contactsContacten ophalen / Get contactsQuery parameters
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| search | string | nee |
Antwoord / Response
{
"data": [
{
"id": "uuid",
"name": "Jan de Vries",
"email": "jan@voorbeeld.nl",
"phone": "+31612345678",
"company": "De Vries Bouw",
"status": "actief",
"tags": ["bouw","klant"],
"created_at": "2026-01-15T09:00:00Z"
}
]
}/api/dashboard/dataContact aanmaken / Create contactRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| data.name | string | ja |
| data.email | string | nee |
| data.phone | string | nee |
| data.company | string | nee |
| data.tags | string[] | nee |
Voorbeeld verzoek / Example request
POST /api/dashboard/data
Content-Type: application/json
{
"table": "crm_contacts",
"data": {
"name": "Pieter Bakker",
"email": "pieter@bakker.nl",
"phone": "+31612345679",
"company": "Bakker Installaties",
"tags": ["lood","installatie"]
}
}Antwoord / Response
{ "data": { "id": "uuid", ... }, "success": true }/api/dashboard/dataContact bijwerken / Update contactRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| id | string (UUID) | ja |
| data | object | ja |
Antwoord / Response
{ "success": true }/api/dashboard/dataContact verwijderen / Delete contactRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| id | string (UUID) | ja |
Antwoord / Response
{ "success": true }Facturen en offertes aanmaken, verzenden en beheren.
/api/dashboard/data?table=invoicesFacturen ophalen / Get invoicesQuery parameters
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
Antwoord / Response
{
"data": [
{
"id": "uuid",
"invoice_number": "F-2026-0042",
"contact_name": "Jan de Vries",
"amount_cents": 149500,
"currency": "EUR",
"status": "verstuurd",
"due_date": "2026-02-15",
"created_at": "2026-01-15T09:00:00Z"
}
]
}/api/dashboard/dataFactuur aanmaken / Create invoiceRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| data.contact_name | string | ja |
| data.amount_cents | number | ja |
| data.currency | string | nee |
| data.due_date | string (ISO 8601) | nee |
| data.items | InvoiceItem[] | nee |
Antwoord / Response
{ "data": { "id": "uuid", "invoice_number": "F-2026-0043", ... } }/api/dashboard/invoices/sendFactuur verzenden / Send invoiceRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| id | string (UUID) | ja |
| channel | "email" | "whatsapp" | ja |
Antwoord / Response
{ "success": true, "message_id": "..." }Afspraken inplannen, ophalen en bijwerken.
/api/dashboard/data?table=agenda_eventsAfspraken ophalen / Get appointmentsQuery parameters
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| from | string (ISO 8601) | nee |
| to | string (ISO 8601) | nee |
Antwoord / Response
{
"data": [
{
"id": "uuid",
"title": "Inspectie dak",
"start_at": "2026-02-01T10:00:00Z",
"end_at": "2026-02-01T11:00:00Z",
"location": "Dorpsstraat 12, Amsterdam",
"assigned_user_id": "uuid"
}
]
}/api/dashboard/dataAfspraak aanmaken / Create appointmentRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| data.title | string | ja |
| data.start_at | string (ISO 8601) | ja |
| data.end_at | string (ISO 8601) | ja |
| data.location | string | nee |
| data.assigned_user_id | string (UUID) | nee |
Antwoord / Response
{ "data": { "id": "uuid", ... } }Berichten sturen en gesprekken ophalen via de WhatsApp Business API.
/api/webhook/whatsappWhatsApp webhook (inkomend) / Inbound webhookQuery parameters
| Parameter | Type | Verplicht |
|---|---|---|
| hub.mode | string | nee |
| hub.challenge | string | nee |
| hub.verify_token | string | nee |
Voorbeeld verzoek / Example request
// Inbound message from Meta
POST /api/webhook/whatsapp
X-Hub-Signature-256: sha256=...
{
"entry": [{
"changes": [{
"value": {
"messages": [{
"from": "31612345678",
"text": { "body": "Hoi, kan ik een offerte krijgen?" }
}]
}
}]
}]
}Antwoord / Response
HTTP 200 OK
/api/dashboard/whatsapp/sendBericht sturen / Send messageRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| to | string | ja |
| message | string | ja |
| template | string | nee |
| template_params | string[] | nee |
Antwoord / Response
{ "success": true, "wa_message_id": "wamid...." }/api/dashboard/data?table=conversationsGesprekken ophalen / Get conversationsQuery parameters
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| status | "active" | "closed" | "pending" | nee |
Antwoord / Response
{
"data": [
{
"id": "uuid",
"customer": { "name": "Jan de Vries", "phone": "+31612345678" },
"status": "active",
"last_message_at": "2026-03-01T14:22:00Z",
"channel": "whatsapp"
}
]
}Ritten inplannen, routes optimaliseren en bestuurders volgen.
/api/dashboard/data?table=rp_ordersOpdrachten ophalen / Get ordersQuery parameters
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| date | string (YYYY-MM-DD) | nee |
| driver_id | string (UUID) | nee |
Antwoord / Response
{
"data": [
{
"id": "uuid",
"reference": "RIT-2026-0101",
"pickup_address": "Hoofdstraat 1, Amsterdam",
"delivery_address": "Keizersgracht 100, Amsterdam",
"status": "onderweg",
"driver_id": "uuid",
"scheduled_at": "2026-03-01T08:00:00Z"
}
]
}/api/dashboard/dataRit aanmaken / Create tripRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| data.pickup_address | string | ja |
| data.delivery_address | string | ja |
| data.scheduled_at | string (ISO 8601) | ja |
| data.driver_id | string (UUID) | nee |
Antwoord / Response
{ "data": { "id": "uuid", "reference": "RIT-2026-0102", ... } }/api/dashboard/dataRitstatus bijwerken / Update trip statusRequest body (JSON)
| Parameter | Type | Verplicht |
|---|---|---|
| table | string | ja |
| id | string (UUID) | ja |
| data.status | "gepland" | "onderweg" | "afgeleverd" | "geannuleerd" | ja |
Antwoord / Response
{ "success": true }Neem contact op via e-mail of WhatsApp voor technische ondersteuning bij API-integraties.
© 2026 Blueprint. Alle rechten voorbehouden.