PlanDocket

Bewerbungen

Business+

Verwalten Sie Bewerbungen für Events.

Erforderliche Bereiche: applications
Zugriffsstufe: GET applications:read POST / PUT / PATCH / DELETE applications:write Mehr zu Zugriffsstufen
Die Freigabe legt zusätzlich einen Kontakt an und erfordert daher außerdem den Bereich "contacts:write".

Endpunkte

GET /api/v1/applications

Alle Bewerbungen auflisten

GET /api/v1/applications/{id}

Einzelne Bewerbung abrufen

PUT/PATCH /api/v1/applications/{id}

Bewerbung aktualisieren

DELETE /api/v1/applications/{id}

Bewerbung in den Papierkorb verschieben (von einem Admin wiederherstellbar)

POST /api/v1/applications/{id}/approve

Bewerbung freigeben: legt den Kontakt mit Portalzugang an, überträgt Events, Kategorien, Notizen, Zusatzfelder und Dateien und löst den Webhook application.approved aus. Der Kontakt erhält kein Passwort: Der Bewerber bekommt eine Einladung ins Portal (Link zum Festlegen des Passworts, 7 Tage gültig, in seiner Sprache). Mit dem optionalen Body {"send_invitation": false} wird keine Einladung verschickt (sie kann später auf der Kontaktseite im Admin gesendet werden). Wie im Adminbereich wird der Bewerber als Teilnehmer der beworbenen Events aufgenommen: "event_ids" beschränkt das auf einen Teil davon ([] nimmt niemanden auf), "confirm" (Standard: Mandanten-Einstellung auto_confirm_on_admit, normalerweise false) bestätigt die Teilnahme sofort und "notify" (Standard true) verschickt die Teilnahme-E-Mail; für die Aufnahme ist der Scope "participants:write" nötig. Liefert contact_id, username, invitation_sent, invitation_status, admitted_events, not_admitted_events (z. B. Event voll, mit code und error) und partial_success. 409, wenn bereits ein Kontakt mit der E-Mail-Adresse existiert oder die Bewerbung schon entschieden ist, 422 ohne gültige E-Mail-Adresse, 403 bei erreichtem Kontaktlimit des Tarifs

POST /api/v1/applications/{id}/reject

Bewerbung ablehnen: entfernt sie samt Dateien endgültig (anders als DELETE, das sie in den Papierkorb verschiebt) und löst den Webhook application.rejected aus. Optionaler Body: {"notify": true, "reason": "..."} benachrichtigt den Bewerber per E-Mail (Begründung max. 2000 Zeichen)

Abfrageparameter

Parameter Beschreibung
search Suchbegriff zum Filtern der Ergebnisse
category_key Nach Kategorie-Schlüssel filtern
event_key Nach Event-Schlüssel filtern
sort Sortierfeld (company_name, last_name, email, city, rating, created_at)
order Sortierrichtung (ASC oder DESC, Standard: DESC)
include Verknüpfte Daten einschließen (events, categories)

Request-Schema

Parameter Typ Erforderlich Beschreibung
company_name string Nein Firmenname
first_name string Nein Vorname
last_name string Nein Nachname
email string Nein E-Mail-Adresse
phone string Nein Telefonnummer
address string Nein Straße
postal_code string Nein Postleitzahl
city string Nein Stadt
country string Nein Ländercode
website string Nein Website-URL
tax_id string Nein Steuernummer
rating integer Nein Bewertung der Bewerbung (1-5)

Response-Schema

Feld Typ
id integer
company_name string|null
first_name string|null
last_name string|null
address string|null
postal_code string|null
city string|null
country string|null
state string|null
phone string|null
fax string|null
mobile string|null
email string|null
website string|null
notes string|null
tax_id string|null
rating integer
created_at string
updated_at string

Codebeispiele

curl -X GET "https://ihr-mandant.plandocket.com/api/v1/applications" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://ihr-mandant.plandocket.com';

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $baseUrl . '/api/v1/applications',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
    ],
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
const apiKey = 'YOUR_API_KEY';
const baseUrl = 'https://ihr-mandant.plandocket.com';

const response = await fetch(`${baseUrl}/api/v1/applications`, {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
  },
});

const data = await response.json();
console.log(data);
import requests

api_key = 'YOUR_API_KEY'
base_url = 'https://ihr-mandant.plandocket.com'

headers = {
    'Authorization': f'Bearer {api_key}',
}

response = requests.get(f'{base_url}/api/v1/applications', headers=headers)
data = response.json()
print(data)

Beispiel-Antwort

200 OK
{
    "data": [
        {
            "id": 1,
            "company_name": "string",
            "first_name": "string",
            "last_name": "string",
            "address": "string",
            "postal_code": "string",
            "city": "string",
            "country": "string",
            "state": "string",
            "phone": "string",
            "fax": "string",
            "mobile": "string",
            "email": "string",
            "website": "string",
            "notes": "string",
            "tax_id": "string",
            "rating": 1,
            "created_at": "2026-01-15T10:00:00+01:00",
            "updated_at": "2026-01-15T10:00:00+01:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 25,
        "total": 1,
        "total_pages": 1
    }
}
API Version v1.0