Op deze pagina

API-overzicht

API-calls maken naar ProcessMind

Deze gids bevat voorbeelden en best practices voor het aanroepen van de ProcessMind API om data op te halen, informatie te versturen of workflows te automatiseren.

Bekijk de API Reference voor volledige endpointdocumentatie met request- en response-indelingen.

Ga voor meer voorbeelden en clientbibliotheken naar de API Documentation on GitHub.

Basis-URL van de API

Alle API-verzoeken moeten naar het volgende adres worden gestuurd:

https://api.processmind.com

Alle routes zijn versiegebonden onder /v1. De volledige machineleesbare API-specificatie is beschikbaar als OpenAPI 3.1 op:

GET https://api.processmind.com/v1/openapi.json

Authenticatie

Voor alle API-verzoeken is je API-sleutel in de header x-api-key vereist:

x-api-key: your-api-key-here

Je haalt de API-sleutel op via de accountinstellingen van ProcessMind. Zie Getting your API Key voor instructies.

Statuscodes

De API van ProcessMind gebruikt standaard HTTP-statuscodes:

Status Betekenis
200 OK Verzoek geslaagd
201 Created Bron aangemaakt
204 No Content Verzoek geslaagd, geen responsebody
400 Bad Request Ongeldig verzoek of ontbrekende/ongeldige parameters
401 Unauthorized Ontbrekende of ongeldige API-sleutel
403 Forbidden Geauthenticeerd, maar niet toegestaan om de actie uit te voeren
404 Not Found Bron bestaat niet
500 Internal Server Error Onverwachte serverfout

Belangrijke concepten

  • apiKey: je authenticatietoken voor alle API-requests.
  • tenantId: identificeert de context van je workspace of organisatie. Je vindt deze in de accountinstellingen.
  • datatableId: identificeert een specifieke datatabel voor datahandelingen. Beschikbaar via de optie ID van datatabel ophalen in het datasetinstellingenmenu binnen ProcessMind.

Wat je kunt doen

Met de ProcessMind API kun je:

  • Tenants beheren: tenantinformatie ophalen, instellingen bijwerken en statistieken bekijken
  • Gebruikers beheren: gebruikers toevoegen, bijwerken of verwijderen uit tenants en organisaties
  • Processen beheren: processen maken, BPMN-modellen uploaden en ordenen in mappen
  • Data koppelen: datatables aan processen koppelen voor analyse
  • Data uploaden: CSV/XLSX-bestanden rechtstreeks naar datatables uploaden
  • Datasets beheren: datasets en datatables weergeven, inspecteren en verwijderen

Veelgebruikte voorbeelden

Hieronder staan praktische voorbeelden van veelgebruikte handelingen met de ProcessMind API.

Een presigned upload-URL ophalen

Haal eerst een presigned URL op om een bestand naar een datatable te uploaden:

const presignedUrl = await getPresignedUploadUrl({
	apiKey,
	tenantId: "tenant-123",
	datatableId: "table-456"
});
console.log(presignedUrl); // https://s3.amazonaws.com/…?X-Amz-Signature=…

Datasets weergeven

Haal alle datasets in je tenant op:

const datasets = await getDatasets({
	apiKey,
	tenantId: "tenant-123"
});
console.log(datasets);

Tenantinformatie ophalen

Haal gegevens over je tenant op:

const tenantInfo = await getTenant({
	apiKey,
	tenantId: "tenant-123"
});
console.log(tenantInfo);

Een proces maken

Maak een nieuw proces in je tenant:

const process = await createProcess({
	apiKey,
	tenantId: "tenant-123",
	displayName: "Order to Cash"
});
console.log(process.id); // Use this ID for subsequent operations

Een BPMN-model uploaden

Upload een BPMN-bestand om je procesmodel te definiëren:

const fs = require("fs");
const bpmnXml = fs.readFileSync("./my-process.bpmn", "utf8");

await uploadBpmn({
	apiKey,
	tenantId: "tenant-123",
	processId: "process-456",
	bpmnXml
});

Data aan een proces koppelen

Koppel een datatable aan een proces voor analyse:

const mapping = await createProcessMapping({
	apiKey,
	tenantId: "tenant-123",
	processId: "process-456",
	dataTableId: "datatable-789",
	displayName: "Sales Data 2024",
	showByDefault: true
});

Een gebruiker aan een tenant toevoegen

Voeg een gebruiker aan je tenant toe:

const result = await addTenantUser({
	apiKey,
	tenantId: "tenant-123",
	id: "user-456",
	email: "colleague@example.com",
	isAdminInTenant: false,
	isActiveInTenant: true,
	sendInvitationEmail: true
});

Opmerking: Rolvelden in de body (isAdminInTenant, access, isDashboardViewer) worden letterlijk overgenomen. De endpoints voor gebruikersbeheer bieden volledige tenantbeheermogelijkheden. Geef daarom alleen API-sleutels met schrijfrechten uit aan aanroepers die je vertrouwt met beheerdersrechten. De System API verstuurt geen uitnodigingsmail. Je bent zelf verantwoordelijk voor het onboarden van de gebruiker.

Bestanden uploaden

De algemene werkwijze voor het uploaden van een bestand naar ProcessMind is:

  1. Haal een presigned URL op met de call getPresignedUploadUrl.
  2. Voer een PUT-verzoek uit naar die URL met de inhoud van het bestand.
  3. De presigned URL geeft rechtstreeks toegang tot de cloudopslag voor de upload. Extra inloggegevens zijn niet nodig.

Hier is een vereenvoudigd voorbeeld met fetch:

async function uploadFile({ apiKey, tenantId, datatableId, file }) {
	// Step 1: Obtain a presigned URL
	const uploadUrl = await getPresignedUploadUrl({ apiKey, tenantId, datatableId });
	
	// Step 2: Upload the file via PUT
	await fetch(uploadUrl, {
		method: "PUT",
		headers: {
			"Content-Type": file.type
		},
		body: file
	});
}

info

  • Presigned URL’s verlopen na een bepaalde tijd, vaak na enkele minuten. Gebruik de URL snel nadat je deze hebt opgehaald.
  • Als een upload mislukt, bijvoorbeeld door een netwerkonderbreking, vraag je een nieuwe presigned URL aan voordat je het opnieuw probeert.
  • Houd je apiKey altijd veilig en stel deze niet bloot aan de clientzijde, bijvoorbeeld in een publieke frontend.

Volledige voorbeelden

Hieronder staan volledige, direct te kopiëren voorbeelden in verschillende programmeertalen.

Bash-voorbeeld: een bestand uploaden

Minimaal Bash-script om een bestand naar ProcessMind te uploaden met twee curl-calls en placeholders voor alle waarden

BASH-voorbeeld downloaden

Node.js-voorbeeld: een lokaal CSV-bestand uploaden

Uploadt een lokaal CSV-bestand naar ProcessMind met een presigned URL.

Stappen:

  1. Haal een presigned upload-URL op via de API.
  2. Lees het lokale bestand van schijf.
  3. Upload het bestand naar de presigned URL met HTTP PUT.

Configuratie:

  • Geef je API-sleutel, tenantId, datatableId en filePath door bij het aanroepen van uploadFile().
  • De basis-URL van de API is ingesteld op https://api.processmind.com
NodeJS-voorbeeld downloaden

Python-voorbeeld: een lokaal CSV-bestand uploaden

Uploadt een lokaal CSV-bestand naar een externe API met een presigned URL.

Stappen:

  1. Haal een presigned upload-URL op via de API.
  2. Lees het lokale bestand van schijf.
  3. Upload het bestand naar de presigned URL met HTTP PUT.

Configuratie:

  • Werk api_key, tenant_id, datatable_id en file_path naar behoefte bij.
Python-voorbeeld downloaden

Paginering

Lijst-endpoints accepteren de queryparameters limit en offset en retourneren een onbewerkte JSON-array, zonder wrapper en zonder totaal aantal:

Parameter Type Standaard Maximum
limit integer 100 1.000
offset integer 0 Geen
GET /v1/tenant/{tenantId}/processes?limit=50&offset=100

Vraag voor paginering door alle resultaten steeds opnieuw op met offset += limit totdat de response-array korter is dan de aangevraagde limit, of leeg is. Waarden boven het maximum worden afgewezen met 400. De versiegebonden data-endpoints, zoals datasets, datatables, versies en webhooks, volgen dezelfde afspraak.

Versiebeheer en uitfasering

  • Alle routes zijn versiegebonden onder /v1. Wijzigingen die niet compatibel zijn, verschijnen in een nieuwe versie in plaats van dat /v1 stilzwijgend verandert.
  • Uitfaseringen worden minstens 6 maanden voordat een route wordt verwijderd aangekondigd in de changelog en op deze pagina. Uitgefaseerde routes blijven in die periode werken.
  • Responses van uitgefaseerde routes bevatten een header Sunset met de verwijderdatum en Deprecation: true.
  • Belangrijke wijzigingen die clients raken, staan altijd in de changelog. Schrijf je in of controleer de changelog voordat je vastgezette API-clients bijwerkt.

Volgende stappen

info

Heb je vragen of hulp nodig bij de API? Neem contact op met het supportteam of open een issue in de repository met API-voorbeelden.