Tous les systèmes

Système intégrité des données

Nettoyez, validez et standardisez les saisies à la source

Stoppez les mauvaises données avant la base. Normalisez le texte, validez les entrées et modérez le contenu en un appel.

Obtenir une clé API

Moteur

Moteur intégrité des données

Validez, normalisez et contrôlez un jeu complet d'entrées en un appel. Pas d'endpoints séparés par champ.

POST /v1/systems/content/moderate
Requête
{
  "email": "  [email protected]  ",
  "phone": "004915123456789",
  "text": "This is some user-generated content"
}
Réponse
{
  "email": {
    "valid": true,
    "normalized": "[email protected]",
    "disposable": false
  },
  "phone": {
    "valid": true,
    "normalized": "+4915123456789",
    "country": "DE"
  },
  "text": {
    "is_safe": true,
    "toxicity_score": 0.01,
    "sentiment": "neutral"
  }
}

Les mauvaises données s'accumulent : e-mails qui rebondissent, téléphones invalides, contenu toxique. Le moteur intégrité intercepte et normalise à la frontière du produit, sans appels séparés par type de champ.

Référence API

Base URL: https://requiems.xyz

Vue d'ensemble

Cas d'utilisation

  • Validate and normalize email, phone, and text fields on form submission
  • Filter profanity, toxic content, and off-policy text in user-generated content
  • Clean and standardize records in bulk import or data migration flows
  • Pre-process and validate user input before passing to LLM workflows
  • Enforce text quality standards without building custom validation logic

Fonctionnalités

Profanity and toxicity detection with named category flags
Sentiment analysis returning positive, negative, or neutral
Automatic language detection with confidence score
Text normalization with composable operation pipeline
Unicode normalization, HTML stripping, case conversion, and whitespace collapsing
Safe for any text content — no data is stored or logged

Points de terminaison de l'API

Batch Input Validate

Validates and scores a batch of up to 50 contact records in a single request. Each record is processed independently — one item failing does not affect others. Returns per-item email, phone, and text validation results with quality scores, normalized values, plus batch-level aggregates including total, valid_count, invalid_count, and average_quality_score.

POST
https://requiems.xyz/v1/systems/input/validate/batch

Paramètres

Nom Type Requis Description
items array<object> Requis Array of contact records to validate. Each item must include email and phone. Text is optional. Min: 1, Max: 50.

Essayez-le

Démo en direct
Requête

Array of contact records to validate. Each item must include email and phone. Text is optional. Min: 1, Max: 50.

Champs de réponse

Champ Type Description
results array<object> List of validation results, one per input item. Preserves the original submission order via the index field.
results[].index integer Zero-based position of the item in the original request array.
results[].email object Email validation result. Null when email was not provided for this item.
results[].email.valid boolean True when the email passes syntax and MX validation.
results[].email.normalized string Normalized form of the email address. Null when syntax is invalid.
results[].email.quality_score number Email quality score from 0.0 to 1.0. Penalized by invalidity, disposable domain, and suggestions.
results[].email.disposable boolean True when the email domain is a known disposable or temporary provider.
results[].phone object Phone validation result. Null when phone was not provided for this item.
results[].phone.valid boolean True when the phone number is valid and dialable.
results[].phone.normalized string Normalized phone number in international format. Null when the number is invalid.
results[].phone.quality_score number Phone quality score from 0.0 to 1.0. Penalized by invalidity, VoIP, virtual, landline, and unknown type.
results[].text object Text analysis result. Null when text was not provided for this item.
results[].overall_quality_score number Weighted quality score from 0.0 to 1.0 combining email and phone fields only. Weights are email 0.5 and phone 0.4, adjusted proportionally when one field is absent. Text does not currently contribute to this score — scoring will be enabled once toxicity_score is available from the sentiment service. Returns 0.0 when only text is provided.
results[].error string Error message when this item could not be processed due to an unexpected failure, such as a service timeout or malformed input. Null when the item was processed successfully, regardless of whether the fields passed validation or not.
total integer Total number of items in the batch.
valid_count integer Number of items where all provided fields have valid set to true.
invalid_count integer Number of items where at least one provided field has valid set to false, or where processing failed due to a timeout or unexpected error.
average_quality_score number Average of overall_quality_score across all successfully processed items. Items that failed due to a timeout or unexpected error are excluded from this average.

Exemples de code

curl -X POST https://requiems.xyz/v1/systems/input/validate/batch \
  -H "requiems-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {"email": "[email protected]", "phone": "+12015551001"},
      {"email": "[email protected]", "phone": "+12015551002"},
      {"email": "[email protected]", "phone": "+12015551003"}
    ]
  }'

Réponses d'erreur

422

validation_failed

The request body is invalid.

401

unauthorized

Missing or invalid API key.

Input Validate

Validates and scores a single email address, phone number, or text input — or any combination of the three. Returns per-field quality scores, normalized values, risk flags, and an overall quality score for gating or enriching input data.

POST
https://requiems.xyz/v1/systems/input/validate

Paramètres

Nom Type Requis Description
email string Facultatif The email address to validate. At least one of email, phone, or text must be provided.
phone string Facultatif The phone number to validate. Must include country code in E.164 format. At least one of email, phone, or text must be provided.
text string Facultatif The text content to analyze for profanity, toxicity, and sentiment. At least one of email, phone, or text must be provided.

Essayez-le

Démo en direct
Requête

The email address to validate. At least one of email, phone, or text must be provided.

The phone number to validate. Must include country code in E.164 format. At least one of email, phone, or text must be provided.

The text content to analyze for profanity, toxicity, and sentiment. At least one of email, phone, or text must be provided.

Champs de réponse

Champ Type Description
email object Email validation result. Null when email was not provided.
email.valid boolean True when the email passes syntax and MX validation.
email.normalized string Normalized form of the email address. Null when syntax is invalid.
email.original string The original email address as provided in the request.
email.syntax_valid boolean True when the email address has a valid structure.
email.mx_valid boolean True when the email domain has valid MX records.
email.disposable boolean True when the email domain is a known disposable or temporary provider.
email.suggestion string Suggested correction when a typo is detected in the domain (e.g. gmial.com → gmail.com). Null otherwise.
email.flags array<string> Triggered flags. Possible values: email_syntax_invalid, email_mx_invalid, email_disposable, email_has_suggestion.
email.quality_score number Email quality score from 0.0 to 1.0. Penalized by invalidity, disposable domain, and suggestions.
phone object Phone validation result. Null when phone was not provided.
phone.valid boolean True when the phone number is valid and dialable.
phone.normalized string Normalized phone number in international format. Null when the number is invalid.
phone.country string ISO 3166-1 alpha-2 country code detected from the number (e.g. US, CO). Null when the number is invalid.
phone.type string Line type. Null when the number is invalid. Possible values: mobile, landline, voip, toll_free, unknown.
phone.carrier object Carrier information. Null when not available.
phone.carrier.name string Name of the carrier or operator associated with the number.
phone.risk object Risk signals associated with the phone number. Null when the validator could not determine risk information.
phone.risk.is_voip boolean True when the number is confirmed as a VoIP line. False when explicitly confirmed as non-VoIP.
phone.risk.is_virtual boolean True when the number is confirmed as a virtual number. False when explicitly confirmed as non-virtual.
phone.flags array<string> Triggered flags. Possible values: phone_invalid, phone_voip, phone_virtual, phone_unknown_type, phone_landline.
phone.quality_score number Phone quality score from 0.0 to 1.0. Penalized by invalidity, VoIP, virtual, landline, and unknown type.
text object Text analysis result. Null when text was not provided.
text.is_safe boolean False when any moderation flag is triggered. True otherwise.
text.toxicity_score number Reserved for future use. Currently always null.
text.sentiment string Detected sentiment: positive, negative, or neutral.
text.flags array<string> Triggered moderation flags. Possible values: text_profanity.
overall_quality_score number Weighted quality score from 0.0 to 1.0 combining email and phone fields only. Weights are email 0.5 and phone 0.4, adjusted proportionally when one field is absent. Text does not currently contribute to this score — scoring will be enabled once toxicity_score is available from the sentiment service. Returns 0.0 when only text is provided.

Exemples de code

curl -X POST https://requiems.xyz/v1/systems/input/validate \
  -H "requiems-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "phone": "+12015551234", "text": "I just wanted to say that your customer service team was incredibly helpful."}'

Réponses d'erreur

422

validation_failed

All fields (email, phone, text) are absent or empty. At least one must be provided.

401

unauthorized

Missing or invalid API key.

Moderate Content

Check text for profanity, toxicity, sentiment, and language. Returns per-category flags and an is_safe boolean for gating content.

POST
https://requiems.xyz/v1/systems/content/moderate

Paramètres

Nom Type Requis Description
text string Requis The text to moderate. Any language. Required.
language string Facultatif ISO 639-1 language code (e.g. en, de, fr). When provided, language detection is skipped and confidence is set to 1.0.

Essayez-le

Démo en direct
Requête

The text to moderate. Any language. Required.

ISO 639-1 language code (e.g. en, de, fr). When provided, language detection is skipped and confidence is set to 1.0.

Champs de réponse

Champ Type Description
is_safe boolean False when any moderation category is triggered. True otherwise.
toxicity_score number Reserved for future use. Currently always null.
sentiment string Detected sentiment: positive, negative, or neutral
language string Detected or provided ISO 639-1 language code. Null when detection confidence is 0.
language_confidence number Confidence in the detected language from 0.0 to 1.0. 1.0 when language was explicitly provided.
flags array<string> Triggered moderation flags. Currently possible: text_profanity
categories object Per-category boolean flags: profanity, hate_speech, spam, violence

Exemples de code

curl -X POST https://requiems.xyz/v1/systems/content/moderate \
  -H "requiems-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "This is some user-generated content.", "language": "en"}'

Réponses d'erreur

422

validation_failed

text field is missing or empty

401

unauthorized

Missing or invalid API key

Normalize Text

Apply a composable pipeline of normalization operations to a string. Trim whitespace, fix encoding, normalize unicode, strip HTML, and more — in a single call.

POST
https://requiems.xyz/v1/systems/text/normalize

Paramètres

Nom Type Requis Description
text string Requis The text to normalize. Required.
operations array<string> Requis Ordered list of normalization operations to apply. At least one required. Valid values: trim, lowercase, uppercase, normalize_unicode, collapse_whitespace, strip_html, remove_punctuation

Essayez-le

Démo en direct
Requête

The text to normalize. Required.

Ordered list of normalization operations to apply. At least one required. Valid values: trim, lowercase, uppercase, normalize_unicode, collapse_whitespace, strip_html, remove_punctuation

Champs de réponse

Champ Type Description
original string The input text as provided
normalized string The text after all operations have been applied in order
operations array<string> The operations list echoed from the request

Exemples de code

curl -X POST https://requiems.xyz/v1/systems/text/normalize \
  -H "requiems-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "  Hello,   World!  ",
    "operations": ["trim", "lowercase", "collapse_whitespace"]
  }'

Réponses d'erreur

422

validation_failed

text is empty or operations array is empty or missing

401

unauthorized

Missing or invalid API key

Domain Trust

Evaluate the trustworthiness of a domain by analyzing DNS records, WHOIS registration data, and MX configuration — in a single call.

GET
https://requiems.xyz/v1/systems/domain/trust/{domain}

Paramètres

Nom Type Requis Description
domain string Requis The domain name to evaluate for trust. Must be a valid domain format (e.g. github.com).

Essayez-le

Démo en direct
Requête

The domain name to evaluate for trust. Must be a valid domain format (e.g. github.com).

Champs de réponse

Champ Type Description
domain string The domain name that was evaluated.
trust_score number Computed trust score between 0.0 and 1.0. Starts at 1.0 with penalties applied based on domain signals.
trust_level string Coarse trust label derived from the score. Possible values are "high" (>= 0.75), "medium" (0.4 - 0.74), or "low" (< 0.4).
who_is object WHOIS registration data for the domain. Omitted from the response if WHOIS is unavailable for the TLD or if the domain is not registered.
who_is.registrar string The registrar where the domain was registered.
who_is.created_at string The date the domain was first registered in RFC3339 format.
who_is.expires_at string The date the domain registration expires in RFC3339 format.
who_is.age_days integer Number of days since the domain was registered.
who_is.status array<string> WHOIS status codes indicating the domain transfer and update permissions.
dns object DNS health check results for the domain. Fields default to false if the domain is not registered.
dns.has_a_records boolean True if the domain has at least one A record pointing to an IP address.
dns.has_mx_records boolean True if the domain has MX records configured for receiving email.
dns.has_ns_records boolean True if the domain has NS records indicating it is delegated to a nameserver.
dns.available boolean True if the domain is unregistered and available for purchase. When true, trust_score is 0.0 and evaluation stops immediately.
mx_records array<object> List of MX records found for the domain. Empty array if none exist or if the domain is not registered.
mx_records[].host_name string The hostname of the mail server.
mx_records[].priority integer Mail server priority. Lower value means higher priority.
flags array<string> List of signal flags raised during evaluation. Possible values are "new_domain", "young_domain", "no_mx", "no_a_records", "no_ns_records", "expiring_soon", "whois_unavailable", "domain_not_registered". Only "domain_not_registered" is returned when the domain is not registered.

Exemples de code

curl -X GET https://requiems.xyz/v1/systems/domain/trust/github.com \
  -H "requiems-api-key: YOUR_API_KEY"

Réponses d'erreur

bad_request

Invalid or malformed domain value in the request path.

Foire aux questions

Backend tout-en-un pour produits SaaS

Authentification, validation, détection de fraude, intelligence paiements et données mondiales, livrés via une API unifiée.