> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Content-Moderation

> Überprüfen Sie Inhalte darauf, dass sie nicht schädlich oder unangemessen sind

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Die Content-Moderations-API wurde entwickelt, um Entwicklern zu helfen, potenziell schädliche oder unangemessene Textinhalte zu identifizieren.
Dieser Endpunkt analysiert Texteingaben und kategorisiert sie nach verschiedenen Arten bedenklicher Inhalte.

## Hauptfunktionen

<ul className="custom-bullets">
  <li>Automatische Erkennung schädlicher Inhalte.</li>
  <li>Mehrere Kategorien problematischer Texte.</li>
  <li>Einfache Integration für die Inhaltsfilterung.</li>
</ul>

## Funktionsweise

Wenn Sie Text an den Moderations-Endpunkt senden, analysiert dieser den Inhalt mithilfe von OpenAI-Modellen. Die API gibt anschließend Ergebnisse zurück, die anzeigen, ob der Text in eine der definierten problematischen Kategorien fällt.

## Kategorien schädlicher Inhalte

Die API klassifiziert Texte in die folgenden Kategorien:

| KATEGORIE              | BESCHREIBUNG                                                                                                                                                                                                                                                                                      |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| hate                   | Inhalte, die Hass aufgrund von Rasse, Geschlecht, Ethnizität, Religion, Nationalität, sexueller Orientierung, Behinderungsstatus oder Kaste ausdrücken, dazu anstacheln oder fördern. Hassinhalte, die sich gegen nicht geschützte Gruppen richten (z. B. Schachspieler), gelten als Belästigung. |
| hate/threatening       | Hassinhalte, die zusätzlich Gewalt oder schweren Schaden gegenüber der betroffenen Gruppe aufgrund von Rasse, Geschlecht, Ethnizität, Religion, Nationalität, sexueller Orientierung, Behinderungsstatus oder Kaste beinhalten.                                                                   |
| harassment             | Inhalte, die belästigende Sprache gegenüber einem Ziel ausdrücken, dazu anstacheln oder fördern.                                                                                                                                                                                                  |
| harassment/threatening | Belästigungsinhalte, die zusätzlich Gewalt oder schweren Schaden gegenüber einem Ziel beinhalten.                                                                                                                                                                                                 |
| self-harm              | Inhalte, die Selbstverletzung – etwa Suizid, Ritzen und Essstörungen – fördern, dazu ermutigen oder darstellen.                                                                                                                                                                                   |
| self-harm/intent       | Inhalte, in denen der Sprecher ausdrückt, dass er sich selbst verletzt oder dies vorhat, z. B. Suizid, Ritzen und Essstörungen.                                                                                                                                                                   |
| self-harm/instructions | Inhalte, die zur Selbstverletzung ermutigen – etwa Suizid, Ritzen und Essstörungen – oder Anleitungen bzw. Ratschläge zur Durchführung solcher Handlungen geben.                                                                                                                                  |
| sexual                 | Inhalte, die sexuelle Erregung hervorrufen sollen, wie die Beschreibung sexueller Aktivitäten, oder die sexuelle Dienstleistungen bewerben (ausgenommen Sexualaufklärung und Wellness).                                                                                                           |
| sexual/minors          | Sexuelle Inhalte, die eine Person unter 18 Jahren einbeziehen.                                                                                                                                                                                                                                    |
| violence               | Inhalte, die Tod, Gewalt oder körperliche Verletzungen darstellen.                                                                                                                                                                                                                                |
| violence/graphic       | Inhalte, die Tod, Gewalt oder körperliche Verletzungen in grafischer Ausführlichkeit darstellen.                                                                                                                                                                                                  |

## Nutzung und Best Practices

1. **Optimale Textlänge**: Für die besten Ergebnisse empfehlen wir, langen Text in kleinere Abschnitte aufzuteilen. Streben Sie Segmente von weniger als 2.000 Zeichen pro Abschnitt an.
2. **Integration**: Verwenden Sie diese API, um potenziell problematische Inhalte in Ihren Anwendungen, Foren oder Plattformen für nutzergenerierte Inhalte automatisch zu markieren.
3. **Reaktion auf Ergebnisse**: Basierend auf der Ausgabe der API können Sie geeignete Maßnahmen wie Inhaltsfilterung, Nutzerwarnungen oder weitergehende Prüfprozesse implementieren.

## Header-Parameter

<HeaderAPI noProfileKey={true} />

## Body-Parameter

<ParamField body="text" type="string">
  Der zu moderierende Text.
</ParamField>

<ParamField body="imageUrl" type="string">
  Die URL des Bildes. Muss mit `https://` beginnen.
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl --location 'https://api.ayrshare.com/api/validate/moderation' \
  --header 'Authorization: Bearer API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
      "text": "Let'\''s kill '\''em all"
  }'
  ```

  ```javascript JavaScript theme={"system"}
  const url = "https://api.ayrshare.com/api/validate/moderation";
  const apiKey = "API_KEY"; // Replace with your actual API key

  const data = {
    text: "Let's kill 'em all",
  };

  fetch(url, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(data),
  })
    .then((response) => response.json())
    .then((result) => console.log(result))
    .catch((error) => console.error("Error:", error));
  ```

  ```python Python theme={"system"}
  import requests

  url = 'https://api.ayrshare.com/api/validate/moderation'
  api_key = 'API_KEY'  # Replace with your actual API key

  headers = {
      'Authorization': f'Bearer {api_key}',
      'Content-Type': 'application/json'
  }

  data = {
      'text': "Let's kill 'em all"
  }

  response = requests.post(url, json=data, headers=headers)

  if response.status_code == 200:
      result = response.json()
      print(result)
  else:
      print(f"Error: {response.status_code}")
      print(response.text)
  ```

  ```php PHP theme={"system"}
  <?php

  $url = 'https://api.ayrshare.com/api/validate/moderation';
  $apiKey = 'API_KEY';  // Replace with your actual API key

  $data = [
      'text' => "Let's kill 'em all"
  ];

  $headers = [
      'Authorization: Bearer ' . $apiKey,
      'Content-Type: application/json'
  ];

  $ch = curl_init($url);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

  $response = curl_exec($ch);

  if (curl_errno($ch)) {
      echo 'Error: ' . curl_error($ch);
  } else {
      $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
      if ($httpCode == 200) {
          $result = json_decode($response, true);
          print_r($result);
      } else {
          echo "Error: HTTP Code " . $httpCode . "\n";
          echo $response;
      }
  }
  ```

  ```go Go theme={"system"}
  package main

  import (
  	"bytes"
  	"encoding/json"
  	"fmt"
  	"io/ioutil"
  	"net/http"
  )

  func main() {
  	url := "https://api.ayrshare.com/api/validate/moderation"
  	apiKey := "API_KEY" // Replace with your actual API key

  	// Create the request body
  	requestBody, err := json.Marshal(map[string]string{
  		"text": "Let's kill 'em all",
  	})
  	if err != nil {
  		fmt.Println("Error creating request body:", err)
  		return
  	}

  	// Create a new request
  	req, err := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
  	if err != nil {
  		fmt.Println("Error creating request:", err)
  		return
  	}

  	// Set headers
  	req.Header.Set("Authorization", "Bearer "+apiKey)
  	req.Header.Set("Content-Type", "application/json")

  	// Send the request
  	client := &http.Client{}
  	resp, err := client.Do(req)
  	if err != nil {
  		fmt.Println("Error sending request:", err)
  		return
  	}
  	defer resp.Body.Close()

  	// Read the response
  	body, err := ioutil.ReadAll(resp.Body)
  	if err != nil {
  		fmt.Println("Error reading response:", err)
  		return
  	}

  	// Check the status code
  	if resp.StatusCode == http.StatusOK {
  		fmt.Println("Response:")
  		fmt.Println(string(body))
  	} else {
  		fmt.Printf("Error: Status Code %d\n", resp.StatusCode)
  		fmt.Println(string(body))
  	}
  }
  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Text;
  using System.Threading.Tasks;
  using System.Text.Json;

  class Program
  {
      static async Task Main(string[] args)
      {
          string url = "https://api.ayrshare.com/api/validate/moderation";
          string apiKey = "API_KEY";  // Replace with your actual API key

          var data = new
          {
              text = "Let's kill 'em all"
          };

          using (var client = new HttpClient())
          {
              client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

              var content = new StringContent(JsonSerializer.Serialize(data), Encoding.UTF8, "application/json");

              try
              {
                  HttpResponseMessage response = await client.PostAsync(url, content);

                  if (response.IsSuccessStatusCode)
                  {
                      string result = await response.Content.ReadAsStringAsync();
                      Console.WriteLine("Response:");
                      Console.WriteLine(result);
                  }
                  else
                  {
                      Console.WriteLine($"Error: {response.StatusCode}");
                      Console.WriteLine(await response.Content.ReadAsStringAsync());
                  }
              }
              catch (HttpRequestException e)
              {
                  Console.WriteLine($"Request error: {e.Message}");
                  Console.WriteLine($"InnerException: {e.InnerException?.Message}"); // Include inner exception details for more information
              }
          }
      }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Response theme={"system"}
  {
    "status": "success",
    "text": "Let's kill 'em all",
    "moderation": [
      {
        "flagged": true,
        "categories": {
          "sexual": false,
          "hate": false,
          "harassment": false,
          "self-harm": false,
          "sexual/minors": false,
          "hate/threatening": false,
          "violence/graphic": false,
          "self-harm/intent": false,
          "self-harm/instructions": false,
          "harassment/threatening": false,
          "violence": true
        },
        "categoryScores": {
          "sexual": 0.00002128273445123341,
          "hate": 0.027735227718949318,
          "harassment": 0.08523011207580566,
          "self-harm": 0.0000021838018255948555,
          "sexual/minors": 1.924875903114298e-7,
          "hate/threatening": 0.0063302298076450825,
          "violence/graphic": 0.00024857991957105696,
          "self-harm/intent": 7.833968993509188e-7,
          "self-harm/instructions": 8.686130570367823e-8,
          "harassment/threatening": 0.07459623366594315,
          "violence": 0.9833663702011108
        }
      }
    ]
  }
  ```

  ```json 400: Bad Request theme={"system"}
  {
    "action": "generate",
    "status": "error",
    "code": 331,
    "message": "There was an issue with the AI processing. Please try again and if the issue persists, contact us."
  }
  ```
</ResponseExample>
