Zum Hauptinhalt springen

Regelpakete

import

Methode: POST
Endpunkt: /api/v1/rule-package/import
Content-Type: application/json (Payload als JSON-String im Request Body)

Die Import-API-Route importiert den Inhalt des angegebenen Regelpakets in das angegebene Regelpaket. Der Inhalt des Regelpakets muss den Spezifikationen für mosparo-Regelpakete entsprechen.

Authentifizierung

Um den API-Endpunkt zu sichern, ist eine Authentifizierung erforderlich. Dazu muss der Header Authorization mit der Anfrage gesendet werden. In diesem Header muss der öffentliche Schlüssel des Projekts als Benutzername angegeben werden. Für das Passwort muss ein HMAC-SHA256-Hash der API-Endpunkt-URL kombiniert mit den Anfragedaten, serialisiert als JSON, angegeben werden. Der private Schlüssel wird als Schlüssel für den HMAC-SHA256-Hash verwendet.

Authorization: [base64 of <publicKey>:<hmacHash>]

Beispiel

$publicKey = 'XStQNakEiJk1oMIXJ6_Rxmd3j5gNcQae34n1G3aR6FU';
$privateKey = 'stH6Ugo4FcbQLp6_KPlOYltFMHfY59rxCUQRk3_AxYQ';
$apiEndpoint = '/api/v1/rule-package/import';
$requestData = ['rulePackageId' => 5, 'rulePackageContent' => '....'];

$hmacHash = hash_hmac('sha256', $apiEndpoint . json_encode($requestData), $privateKey);
$authHeader = base64_encode($publicKey . ':' . $hmacHash);
Authorization: WFN0UU5ha0VpSmsxb01JWEo2X1J4bWQzajVnTmNRYWUzNG4xRzNhUjZGVTpkZjA0MTc2NTZmOWUwNWY1ODcyMzhlMzdkNmJkMDUyYTRmZDUwNmUwY2QxMDhjYmU1MDFhZGE2OTg3NjM0MjA5

Anfrage

Argumente

NameTypErforderlichBeschreibung
rulePackageIdStringErforderlichDie ID des Regelpakets, in das der Inhalt importiert werden soll. Dabei muss es sich um ein Regelpaket vom Typ "Manuell über API" handeln.
rulePackageContentStringErforderlichDer gesamte Inhalt des Regelpakets, der importiert werden soll.
rulePackageHashStringOptionalDer SHA256-Hashwert des Inhalts des Regelpakets.

Antwort

Beispiel

{
"successful": true,
"verifiedHash": true
}

Merkmale

Wenn die Anfrage erfolgreich abgeschlossen wurde, sind die folgenden Eigenschaften in der Antwort enthalten:

NameTypBeschreibung
successfulBooleanIst immer als true gesetzt, sofern kein Fehler aufgetreten ist.
verifiedHashBooleanWenn der Hash korrekt verifiziert wurde, wird dieser Wert auf "true" gesetzt, andernfalls auf "false".

Wenn ein Fehler aufgetreten ist, sind nur die folgenden Eigenschaften in der Antwort enthalten:

NameTypBeschreibung
errorBooleanWenn true, ist ein Fehler aufgetreten.
errorMessageStringDie Beschreibung des Fehlers, der aufgetreten ist.
Information

Die Antwort kann mehr Daten enthalten, falls der API-Debugging-Modus für ein Projekt aktiviert ist.

hash-index

Methode: GET
Endpunkt: /api/v1/rule-package/{id}/hash-index
Content-Type: text/plain

Dieser Endpunkt gibt den gesamten Hash-Index eines Regelpakets zurück. Der Hash-Index setzt sich aus der UUID der Regel bzw. des Regeleintrages und dem Hash der Regel bzw. des Regeleintrages zusammen. Wenn Sie ein Regelpaket direkt über die API synchronisieren möchten, laden Sie zunächst den Hash-Index und prüfen Sie, welche Regeln bzw. Regeleinträge aktualisiert werden müssen.

Jede Zeile ist eine Regel oder ein Regeleintrag, daher müssen Sie die Antwort anhand eines Zeilenumbruchzeichens (\n) aufteilen.

Sobald das Ende erreicht ist, gibt der Endpunkt ###END in einer neuen Zeile zurück. Wenn Sie diesen Code erhalten haben hast, können Sie den Index verarbeiten.

Authentifizierung

Um den API-Endpunkt zu sichern, ist eine Authentifizierung erforderlich. Dazu muss der Header Authorization mit der Anfrage gesendet werden. In diesem Header muss der öffentliche Schlüssel des Projekts als Benutzername angegeben werden. Für das Passwort muss ein HMAC-SHA256-Hash der API-Endpunkt-URL kombiniert mit den Anfragedaten, serialisiert als JSON, angegeben werden. Der private Schlüssel wird als Schlüssel für den HMAC-SHA256-Hash verwendet.

Authorization: [base64 of <publicKey>:<hmacHash>]

Beispiel

$publicKey = 'XStQNakEiJk1oMIXJ6_Rxmd3j5gNcQae34n1G3aR6FU';
$privateKey = 'stH6Ugo4FcbQLp6_KPlOYltFMHfY59rxCUQRk3_AxYQ';
$apiEndpoint = '/api/v1/rule-package/1/hash-index';
$requestData = ['offset' => 0, 'maxItems' => 100000];

$hmacHash = hash_hmac('sha256', $apiEndpoint . json_encode($requestData), $privateKey);
$authHeader = base64_encode($publicKey . ':' . $hmacHash);
Authorization: WFN0UU5ha0VpSmsxb01JWEo2X1J4bWQzajVnTmNRYWUzNG4xRzNhUjZGVTphYmNlYjNjMzgxNmU3NGNhYzdhZDFlYTIwZmE3ODU3ZDBlMjk1YmQzODU2ZTcwZjE2NTMxNDU3YTU0ZDRiMmZj

Anfrage

Argumente

NameTypErforderlichBeschreibung
offsetIntegerOptionalGibt an, an welcher Position der Endpunkt beginnen soll. Auf diese Weise können Sie eine Schleife verwenden und beispielsweise 100000 Elemente auf einmal laden und die zweite Anfrage mit dem Offset 100000 starten.
maxItemsIntegerOptionalGibt dem Endpunkt an, wie viele Elemente Sie mit einer Anfrage erhalten möchten.

Antwort

Beispiel

cf164449-ea85-4312-bec0-ae551de90891::r/3fed3c117b45765b8d3e57744d18d266/115
2f51af01-eea7-4fe4-b7bb-5b41790b3a44::i/569bbb49eea5ca57dc109b5223fc210c/1552
9cecd7ca-bc68-4c48-8a82-fa3af5778be7::i/e73b0046cc24782de57f953c6bc3801a/1553
2f737ffe-ff20-4bcb-a3de-0a039b710b62::i/3fbf46288fd00219fb12b77ef39e46f8/1554
cc7e2cf4-6574-45fb-a9de-6beefd0d8180::i/846ee5b4b570c98b0da9d751cd14dba6/1555
752b0bff-8cb9-42eb-87bd-c5529a709107::i/3b97a60179e9bdb4b86f4508f983e92f/1556

Format

Das Ausgabeformat sieht wie folgt aus:

{uuid}::{type}/{hash}/{id}
MerkmalBeschreibung
uuidDie UUID der Regel oder des Regeleintrages, die pro Regelpaket eindeutig ist.
typeEntweder r für "Regel" oder i für "Regeleintrag".
hashDer Hashwert der Regel oder des Regeleintrages. Der Regel-Hash enthält keine Regeleinträge.
idDas ist die ID einer Regel oder eines Regeleintrages in der Datenbank. Diese ID wird verwendet, um die Regeln oder Regeleinträge zu aktualisieren.

Fehler

Wenn das Regelpaket keinen Cache hat (das Regelpaket wurde nie in mosparo geladen), ist die Antwort ein einfaches JSON-Objekt, das wie folgt aussieht:

{
"result": false,
"noCache": true
}

Der HTTP-Statuscode der Antwort lautet 205.

rules

Methode: GET
Endpunkt: /api/v1/rule-package/{id}/rules
Content-Type: application/json

Wenn Sie eine Liste aller Regeln im Regelpaket abrufen möchten, können Sie diesen Endpunkt verwenden.

Authentifizierung

Um den API-Endpunkt zu sichern, ist eine Authentifizierung erforderlich. Dazu muss der Header Authorization mit der Anfrage gesendet werden. In diesem Header muss der öffentliche Schlüssel des Projekts als Benutzername angegeben werden. Für das Passwort muss ein HMAC-SHA256-Hash der API-Endpunkt-URL kombiniert mit den Anfragedaten, serialisiert als JSON, angegeben werden. Der private Schlüssel wird als Schlüssel für den HMAC-SHA256-Hash verwendet.

Authorization: [base64 of <publicKey>:<hmacHash>]

Beispiel

$publicKey = 'XStQNakEiJk1oMIXJ6_Rxmd3j5gNcQae34n1G3aR6FU';
$privateKey = 'stH6Ugo4FcbQLp6_KPlOYltFMHfY59rxCUQRk3_AxYQ';
$apiEndpoint = '/api/v1/rule-package/1/rules';
$requestData = ['page' => 1, 'perPage' => 1000];

$hmacHash = hash_hmac('sha256', $apiEndpoint . json_encode($requestData), $privateKey);
$authHeader = base64_encode($publicKey . ':' . $hmacHash);
Authorization: WFN0UU5ha0VpSmsxb01JWEo2X1J4bWQzajVnTmNRYWUzNG4xRzNhUjZGVTo2OGQ0OTJjNDE3ZjJlMjY2MmJhNTc5YmU1YTdkNTY3MmUzZjdmNTE1Yzg4M2NiNjFjMjdiNTc5ZjA1NzUxZWNi

Anfrage

Argumente

NameTypErforderlichBeschreibung
pageIntegerOptionalLegt die Seite fest, die Sie aus dieser Liste erhalten möchten.
perPageIntegerOptionalGibt dem Endpunkt an, wie viele Regeln Sie in einer Antwort erhalten möchten.

Antwort

Beispiel

{
"result": true,
"rules": [
{
"id": 115,
"uuid": "cf164449-ea85-4312-bec0-ae551de90891",
"type": "word",
"name": "Blocked words",
"description": "",
"numberOfItems": 143,
"spamRatingFactor": 3.0,
"updatedAt": "2026-05-01T12:00:00+00:00",
"listRoute": "/api/v1/rule-package/1/rules/115/rule-items"
}
],
"page": 1,
"totalPages": 5
}

Merkmale

Wenn mosparo die Anfrage erfolgreich ausgeführt hat, sind in der Antwort die folgenden Merkmale enthalten:

NameTypBeschreibung
resultBooleanGibt true zurück, wenn die Anfrage erfolgreich war, oder false, wenn ein Fehler aufgetreten ist.
rulesArrayDas Array enthält alle Regeln für diese Seite (siehe Merkmale von rules).
pageIntegerZeigt an, welche Seite Sie aufgerufen haben.
totalPagesIntegerGibt an, wie viele Seiten Sie anfordern können.
Information

Die Antwort kann mehr Daten enthalten, falls der API-Debugging-Modus für ein Projekt aktiviert ist.

Merkmale von rules
NameTypBeschreibung
idIntegerDie ID des Regel-Caches in mosparo.
uuidIntegerDie UUID dieser Regel, die im Regelpaket angegeben wurde.
typeObjektDer Typ der Regel, zum Beispiel word.
nameStringDer Name der Regel.
descriptionStringDie Beschreibung der Regel.
numberOfItemsIntegerGibt an, wie viele Einträge in dieser Regel vorhanden sind.
spamRatingFactorFloatGibt den Faktor an, mit dem jeder Regeleintrag multipliziert werden soll, wenn der Regeleintrag übereinstimmt.
updatedAtStringDer Zeitstempel, zu dem der Regel-Cache zuletzt aktualisiert wurde. Format: Y-m-d\\TH:i:sP
listRouteStringURL zum Endpunkt, über den die Regeleinträge für diese Regel abgerufen werden können.

Fehler

Wenn das Regelpaket keinen Cache hat (das Regelpaket wurde nie in mosparo geladen), ist die Antwort ein einfaches JSON-Objekt, das wie folgt aussieht:

{
"result": false,
"noCache": true
}

Der HTTP-Statuscode der Antwort lautet 205.

rule-items

Methode: GET
Endpunkt: /api/v1/rule-package/{id}/rules/{ruleId}/rule-items
Content-Type: application/json

Wenn Sie die Liste der Regeleinträge einer Regel abrufen möchten, können Sie diesen API-Endpunkt verwenden.

Authentifizierung

Um den API-Endpunkt zu sichern, ist eine Authentifizierung erforderlich. Dazu muss der Header Authorization mit der Anfrage gesendet werden. In diesem Header muss der öffentliche Schlüssel des Projekts als Benutzername angegeben werden. Für das Passwort muss ein HMAC-SHA256-Hash der API-Endpunkt-URL kombiniert mit den Anfragedaten, serialisiert als JSON, angegeben werden. Der private Schlüssel wird als Schlüssel für den HMAC-SHA256-Hash verwendet.

Authorization: [base64 of <publicKey>:<hmacHash>]

Beispiel

$publicKey = 'XStQNakEiJk1oMIXJ6_Rxmd3j5gNcQae34n1G3aR6FU';
$privateKey = 'stH6Ugo4FcbQLp6_KPlOYltFMHfY59rxCUQRk3_AxYQ';
$apiEndpoint = '/api/v1/rule-package/1/rules/115/rule-items';
$requestData = ['page' => 1, 'perPage' => 1000];

$hmacHash = hash_hmac('sha256', $apiEndpoint . json_encode($requestData), $privateKey);
$authHeader = base64_encode($publicKey . ':' . $hmacHash);
Authorization: WFN0UU5ha0VpSmsxb01JWEo2X1J4bWQzajVnTmNRYWUzNG4xRzNhUjZGVTo1YmMwYmM5NDMxNzQ0MjM1MzMyOWRjMTkzZWEwNDg4ZDA4YTQ2YjI3N2NkMGU1NDc2ZTA2NzVjMzI1MmVlMzU5

Anfrage

Argumente

NameTypErforderlichBeschreibung
pageIntegerOptionalLegt die Seite fest, die Sie aus dieser Liste erhalten möchten.
perPageIntegerOptionalGibt dem Endpunkt an, wie viele Regeleinträge Sie in einer Antwort erhalten möchten.

Antwort

Beispiel

{
"result": true,
"ruleItems": [
{
"id": 1552,
"uuid": "2f51af01-eea7-4fe4-b7bb-5b41790b3a44",
"type": "word",
"value": "pills",
"rating": 3.0
}
],
"page": 1,
"totalPages": 5
}

Merkmale

Wenn mosparo die Anfrage erfolgreich ausgeführt hat, sind in der Antwort die folgenden Merkmale enthalten:

NameTypBeschreibung
resultBooleanGibt true zurück, wenn die Anfrage erfolgreich war, oder false, wenn ein Fehler aufgetreten ist.
ruleItemsArrayDas Array enthält alle Regeleinträge für diese Seite (siehe Merkmale von ruleItems).
pageIntegerZeigt an, welche Seite Sie aufgerufen haben.
totalPagesIntegerGibt an, wie viele Seiten Sie anfordern können.
Information

Die Antwort kann mehr Daten enthalten, falls der API-Debugging-Modus für ein Projekt aktiviert ist.

Merkmale von ruleItems
NameTypBeschreibung
idIntegerDie ID des Regeleintrag-Caches in mosparo.
uuidIntegerDie UUID dieses Regeleintrages, die im Regelpaket angegeben wurde.
typeStringDer Typ des Regeleintrages, zum Beispiel word.
valueStringEnthält den Wert des Regeleintrages.
ratingFloatLegt die Bewertung des Regeleintrages fest.

Fehler

Wenn das Regelpaket keinen Cache hat (das Regelpaket wurde nie in mosparo geladen), ist die Antwort ein einfaches JSON-Objekt, das wie folgt aussieht:

{
"result": false,
"noCache": true
}

Der HTTP-Statuscode der Antwort lautet 205.

batch

Methode: POST
Endpunkt: /api/v1/rule-package/{id}/batch
Content-Type: application/json (Payload als JSON-String im Request Body)

Um Regeln oder Regelelemente hinzuzufügen, zu ändern oder zu löschen, können Sie den Batch-API-Endpunkt verwenden. Um das Regelpaket zu ändern, teilen Sie diesem API-Endpunkt mit, welche Änderungen vorgenommen werden sollen.

Authentifizierung

Um den API-Endpunkt zu sichern, ist eine Authentifizierung erforderlich. Dazu muss der Header Authorization mit der Anfrage gesendet werden. In diesem Header muss der öffentliche Schlüssel des Projekts als Benutzername angegeben werden. Für das Passwort muss ein HMAC-SHA256-Hash der API-Endpunkt-URL kombiniert mit den Anfragedaten, serialisiert als JSON, angegeben werden. Der private Schlüssel wird als Schlüssel für den HMAC-SHA256-Hash verwendet.

Authorization: [base64 of <publicKey>:<hmacHash>]

Beispiel

$publicKey = 'XStQNakEiJk1oMIXJ6_Rxmd3j5gNcQae34n1G3aR6FU';
$privateKey = 'stH6Ugo4FcbQLp6_KPlOYltFMHfY59rxCUQRk3_AxYQ';
$apiEndpoint = '/api/v1/rule-package/1/batch';
$requestData = ['tasks' => [
['type' => 'update_rule_package', 'data' => ['lastUpdatedAt' => '2026-05-01T12:00:00+00:00', 'refreshInterval' => 60]],
]];

$hmacHash = hash_hmac('sha256', $apiEndpoint . json_encode($requestData), $privateKey);
$authHeader = base64_encode($publicKey . ':' . $hmacHash);
Authorization: WFN0UU5ha0VpSmsxb01JWEo2X1J4bWQzajVnTmNRYWUzNG4xRzNhUjZGVTo5MWNhODkxZWM5ZGJlNDEyMmQ5YTJmYmM3NDMxMjJhOWJlYWRmMTdmYWRlNzYzN2IxNGNlMjljYmYwNjY5YzNk

Anfrage

Argumente

NameTypErforderlichBeschreibung
tasksArrayErforderlichEin Array von Objekten, das alle Aufgaben enthält, die der Endpunkt ausführen soll (siehe Merkmale von tasks).
Merkmale von tasks

Jedes Aufgabenobjekt verfügt über die folgenden zwei Eigenschaften:

NameTypErforderlichBeschreibung
typeStringErforderlichEine Zeichenfolge, die den Typ der Aufgabe angibt. Kann einer der folgenden Werte sein: update_rule_package, store_rule, store_rule_item, remove_rule oder remove_rule_item.
dataObjektErforderlichEin Objekt, das alle Daten für die Aufgabe enthält. Die zulässigen Eigenschaften dieses Objekts finden Sie weiter unten unter Aufgabentypen.

Aufgabentypen

update_rule_package

Aktualisiert die Informationen zum Regelpaket im Regelpaket-Cache.

Das data-Objekt enthält die folgenden Merkmale:

NameTypErforderlichBeschreibung
lastUpdatedAtStringErforderlichDer Zeitstempel, zu dem der Regel-Cache zuletzt aktualisiert wurde. Format: Y-m-d\\TH:i:sP
refreshIntervalIntegerErforderlichLegt die Zeit in Sekunden fest, nach der mosparo das Regelpaket erneut abrufen darf.
store_rule

Speichert (fügt hinzu oder aktualisiert) die Regel im Regelpaket-Cache

Das data-Objekt enthält die folgenden Merkmale:

NameTypErforderlichBeschreibung
uuidStringErforderlichEine eindeutige Identifikationsnummer der Regel.
nameStringErforderlichName der Regel.
descriptionStringOptionalBeschreibung der Regel.
typeStringErforderlichRegeltyp (zum Beispiel: word oder user-agent).
spamRatingFactorFloatOptionalBewertungsfaktor der Regel, um die Einträge der Regel zu verstärken oder abzuschwächen. Ein Wert grösser als 1.0 verstärkt die Einträge, ein Wert kleiner als 1.0 schwächt die Einträge ab.
store_rule_item

Speichert (fügt hinzu oder aktualisiert) einen Regel-Eintrag im Regelpaket-Cache.

Das data-Objekt enthält die folgenden Merkmale:

NameTypRequiredBeschreibung
ruleUuidStringErforderlichDie eindeutige Identifikationsnummer der Regel, zu der dieser Eintrag gehört.
uuidStringErforderlichEine Eindeutige Identifikationsnummer des Regel-Eintrags.
typeStringErforderlichDefiniert den Typ der Regel (zum Beispiel: text oder regex).
valueStringErforderlichDer eigentliche Wert des Eintrags.
ratingFloatOptionalDefiniert den Spam-Wert des Eintrags. Dieser Wert wird mit dem Spam-Bewertungsfaktor multipliziert und ergibt das Bewertungsergebnis einer Einsendung.
remove_rule

Löscht die angegebene Regel aus dem Regelpaket-Cache.

Das data-Objekt enthält die folgenden Merkmale:

NameTypErforderlichBeschreibung
idIntegerErforderlichDie ID der Regel in mosparo. Diese ID erhalten Sie entweder durch Abfrage des Hash-Indexes oder durch Laden der Regeln über die API.
remove_rule_item

Löscht den angegebenen Regel-Eintrag aus dem Regelpaket-Cache.

Das data-Objekt enthält die folgenden Merkmale:

NameTypErforderlichBeschreibung
idIntegerErforderlichDie ID des Regeleintrages in mosparo. Diese ID erhalten Sie entweder durch Abfrage des Hash-Indexes oder durch Laden der Regelelemente über die API.

Antwort

Beispiel

{
"result": true,
"errors": []
}

Merkmale

Die Antwort des Endpunkts enthält die folgenden Merkmale:

NameTypBeschreibung
resultBooleanIst true, wenn der Endpunkt korrekt aufgerufen wurde und die Aufgaben verarbeiten konnte.
errorsArrayEnthält die Fehlermeldungen, die bei der Bearbeitung der Aufgaben aufgetreten sind.
Information

Die Antwort kann mehr Daten enthalten, falls der API-Debugging-Modus für ein Projekt aktiviert ist.