DM Champ Docs

Aan de slag met de API

Met de DM Champ REST API kun je je eigen integratie boven op je account bouwen. Je kunt contacten aanmaken en opzoeken, campagnes, veelgestelde vragen, taken en afspraken beheren, berichten versturen, webhooks registreren, analyses lezen en berichtenkanalen koppelen — alles wat het dashboard doet, aangestuurd door code.

Dit is de centrale pagina voor de API-documentatie. Als je DM Champ koppelt aan een tool die al een ingebouwde integratie heeft, heb je de API wellicht helemaal niet nodig. De API is bedoeld voor aangepaste integraties en automatisering op schaal.

Let op: Deze pagina’s zijn geschreven voor ontwikkelaars. Als u geen ontwikkelaar bent, deel dit gedeelte dan met uw technische team.


Basis-URL

Elk verzoek gaat naar hetzelfde basiswebadres en alle paden in deze documentatie zijn hieraan gerelateerd:

https://api.dmchamp.com/v1

Dus het AI Agents-eindpunt is https://api.dmchamp.com/v1/agents, het contacten-eindpunt is https://api.dmchamp.com/v1/contacts, enzovoort.

Alle verzoeken moeten gebruikmaken van een beveiligde verbinding (HTTPS). Gewone HTTP-verzoeken worden geweigerd.


Een API-sleutel verkrijgen

API-toegang is een betaalde functie. Als je abonnement dit niet bevat, retourneert elk verzoek een 403 met de volgende inhoud:

{
  "success": false,
  "error_code": 403,
  "error": "This action requires the \"api_access\" feature, which is not enabled for this account."
}

Zodra API-toegang is ingeschakeld voor uw abonnement, kunt u een sleutel genereren via het dashboard. De volledige stapsgewijze handleiding vindt u in API-toegang — kort gezegd: ga naar Instellingen → Integraties → API-sleutel om uw sleutel te genereren of opnieuw te genereren. API-sleutel is een eigen sectie onder Integraties, los van Webhooks, en verschijnt pas zodra API-toegang is ingeschakeld voor uw abonnement. Behandel de sleutel als een wachtwoord: deze verleent volledige toegang tot uw account.


Authenticatie

Je kunt je API-sleutel op vier manieren verzenden. Ze werken allemaal op elk eindpunt dat authenticatie via een API-sleutel accepteert.

Methode Hoe Beste voor
Queryparameter ?apiKey=YOUR_API_KEY Snelle tests, browser-URL’s, verouderde opstellingen
Header X-API-Key: YOUR_API_KEY Productie-integraties
Bearer-header Authorization: Bearer YOUR_API_KEY Productie-integraties
Firebase ID-token Authorization: Bearer <ID token> Alleen voor sessies van eigen apps

Geef voor productie de voorkeur aan een van de header-vormen, zodat je sleutel nooit in een serverlogboek of browsergeschiedenis terechtkomt. De queryparameter-vorm werkt altijd en is het eenvoudigst voor een eenmalige test.

Zie Authenticatie voor een volledig overzicht van elke methode, met voorbeelden en richtlijnen over wanneer je welke methode gebruikt.


Je eerste verzoek

Hier is een volledige, werkende aanroep die de AI Agents in je account weergeeft. Deze gebruikt je API-sleutel en retourneert een korte rij per Agent, met de nieuwste eerst.

cURL

curl "https://api.dmchamp.com/v1/agents?apiKey=YOUR_API_KEY&view=summary"

JavaScript

const res = await fetch("https://api.dmchamp.com/v1/agents?view=summary", {
  headers: {
    "X-API-Key": "YOUR_API_KEY",
  },
});

const data = await res.json();
console.log(data.agents);

Python

import requests

res = requests.get(
    "https://api.dmchamp.com/v1/agents",
    params={"view": "summary"},
    headers={"X-API-Key": "YOUR_API_KEY"},
)

data = res.json()
print(data["agents"])

Een geslaagd antwoord ziet er als volgt uit:

{
  "success": true,
  "campaigns": [
    {
      "id": "NBCXrhqGPSFsd6MV7pRo",
      "name": "Inbound WhatsApp Leads",
      "type": "Incoming from Unknown Contacts",
      "status": "Live",
      "enabled": true,
      "archived": false,
      "created_at": 1700000000000,
      "ai_mode": true,
      "language": "en",
      "enabled_channels": ["whatsapp", "instagram"]
    }
  ],
  "next_cursor": null
}

Succes- en foutmeldingen

Elk JSON-antwoord bevat een success-vlag, zodat je hierop kunt vertakken zonder statuscodes te hoeven parseren.

Een geslaagd antwoord is success: true plus de gegevens voor dat eindpunt (de veldnaam varieert — campaigns, contacts, data, enzovoort):

{
  "success": true,
  "campaigns": []
}

Een mislukt antwoord is success: false met een leesbaar error-bericht en een numerieke error_code die overeenkomt met de HTTP-status:

{
  "success": false,
  "error": "Invalid cursor",
  "error_code": 400
}

Controleer altijd success (of de HTTP-status) voordat je de gegevens leest. Zie Fouten & Paginering voor de volledige tabel met statuscodes en hoe je door grote resultatensets bladert.


Snelheidslimieten

Geverifieerde verzoeken zijn beperkt tot 300 verzoeken per minuut per API-sleutel. Er is ook een ruimer plafond van 1.200 verzoeken per minuut per account, waarbij elk geverifieerd verzoek voor dat account wordt meegeteld.

Agentschappen: het tweede getal is het getal om rekening mee te houden. Verzoeken die u doet met uw agentschapssleutel worden in mindering gebracht op uw agentschapsaccount, zelfs wanneer ze gericht zijn op een sub-account met sub_account_id, dus een provisioning-burst over vele klanten deelt één budget. Als een klant een eigen budget nodig heeft, gebruik dan de API-sleutel van dat sub-account.

Als u een van beide limieten overschrijdt, ontvangt u een 429-antwoord:

{
  "success": false,
  "error_code": 429,
  "error": "Rate limit exceeded. Please try again later."
}

Wacht even en probeer het na een korte pauze opnieuw. Je kunt je huidige verbruik ook op elk gewenst moment controleren met GET https://api.dmchamp.com/v1/api-keys/usage, die teruggeeft hoeveel verzoeken je in het huidige venster hebt gebruikt en wanneer dit wordt gereset — handig voor het bouwen van client-side throttling. Zie API-sleutels.


Resourcegidsen

De onderstaande resourcegroepen hebben elk hun eigen handleiding met de exacte paden, aanvraagvelden en antwoordstructuren.

Resource Wat het dekt
AI Agents AI-agents maken en configureren: instellingen, actieve uren, kennis, tagregels, tools, media en concepten
Entry Points Bepalen welke AI-agent een nieuw gesprek beantwoordt: kanaalinstellingen, één agent per WhatsApp-nummer, trefwoord-, opmerking- en volgersregels
Broadcasts Eenmalige verzendingen naar een contactenlijst maken, prijzen, starten, pauzeren en dupliceren
Campaigns Campagnes en hun botconfiguratie maken, bijwerken, dupliceren, inschakelen, archiveren en inspecteren
Contacts Contacten maken, opzoeken, weergeven, bijwerken, importeren, taggen en verwijderen
FAQs De vraag-en-antwoord-items beheren die je AI-assistent gebruikt en deze koppelen aan campagnes
Knowledge Base Websites en documenten importeren in de kennis van je AI en FAQ’s bundelen in groepen
Tasks CRM-taken, bordfasen en taaktypen maken en beheren
Messages Uitgaande berichten verzenden en gespreksgeschiedenis lezen
Appointments Afspraken boeken, verzetten, annuleren en verwijderen
Channels Berichtenkanalen verbinden en verbreken, nummers kopen en instellen welke AI-agent nieuwe gesprekken op elk kanaal beantwoordt
Templates WhatsApp-berichtsjablonen maken, indienen en de goedkeuringsstatus controleren
Analytics Dagelijkse statistieken van berichtgebeurtenissen, kredietverbruik en AI-kostenoverzichten lezen
Webhooks Eindpunten registreren om realtime gebeurtenismeldingen te ontvangen
Team Teamleden, uitnodigingen, rollen, machtigingen en afdelingen beheren
API Keys Je API-sleutel inspecteren, roteren en intrekken, het gebruik van limieten controleren en extra sleutels met beperkte toegang maken

Agents, Toegangspunten en Uitzendingen

AI Agents, Entry Points en Broadcasts staan allemaal in de gepubliceerde OpenAPI-specificatie, zodat je hun exacte velden kunt bekijken en live verzoeken kunt uitvoeren in de API explorer. Elk heeft zijn eigen handleiding: AI Agents, Entry Points en Broadcasts.

Omdat ze in de specificatie staan, verschijnen deze eindpunten ook als tools voor elke AI-assistent die je via MCP verbindt.


Deze documentatie lezen als Markdown

Elke pagina in deze documentatie heeft een Markdown-tegenhanger: neem het adres van de pagina en voeg /index.md toe aan het einde. Deze pagina is dus ook beschikbaar op https://docs.youraiconnector.com/api/getting-started/index.md en wordt als platte tekst geretourneerd in plaats van als webpagina — handig wanneer je een pagina in een AI-assistent wilt plakken of in een script wilt ophalen.

Voor een AI-assistent of een script dat de hele set moet lezen, zijn er twee kant-en-klare bestanden:

  • https://docs.youraiconnector.com/llms.txt — de index: elke pagina met een samenvatting van één regel en een link naar de Markdown-tegenhanger, gegroepeerd zoals in de zijbalk.
  • https://docs.youraiconnector.com/llms-full.txt — de volledige documentatie in één Markdown-bestand. Elke pagina begint met de titel en een Source:-regel met het pagina-adres, zodat een assistent kan citeren waar een antwoord vandaan komt.

Beide bestaan ook voor elke taal, onder het taalvoorvoegsel (https://docs.youraiconnector.com/nl/llms.txt, https://docs.youraiconnector.com/es/llms-full.txt, enzovoort). Geef je assistent het llms.txt-adres en deze haalt de benodigde pagina’s op, of geef het llms-full.txt wanneer het alles in één keer in de context moet hebben. Ze worden bij elke wijziging in de documentatie opnieuw opgebouwd, dus ze raken nooit verouderd.

Om zelf door de pagina’s te bladeren, kun je https://docs.youraiconnector.com/sitemap.xml gebruiken, waarin elke pagina die we publiceren wordt vermeld. De documentatie wordt bewust buiten zoekmachines gehouden, dus het direct ophalen van deze adressen is de manier om er vanuit code bij te komen.

Hiervoor is geen API-sleutel nodig: de Markdown-tegenhangers, de twee llms-bestanden en de sitemap vormen de volledige interface.


Volgende stappen

  • Authentication — kies de juiste authenticatiemethode voor je integratie.
  • Errors & Pagination — fouten afhandelen en door resultaten bladeren.
  • API Access — je sleutel genereren en uitgewerkte voorbeelden bekijken.