API Docs
Conceptos

Estructura del resultado

El resultado responde a tres preguntas: qué valores se calcularon, qué problemas se encontraron y qué sustitución o cambio puede proponerse para cada aparición.

Una métrica activa siempre se evalúa, pero su salida depende del tipo: las mediciones aparecen una vez; las reglas de sugerencia solo aparecen cuando encuentran coincidencias.

result.measurements[]

Mediciones

Valores numéricos calculados. Cada entrada de result.measurements se identifica por metric_id; value se interpreta junto con unit e implementation_version.

Métricas y reglas →
result.suggestions[]

Reglas de sugerencia

Problemas agrupados por regla. Cada elemento explica el problema y reúne en occurrences todas sus apariciones concretas en el texto.

Métricas y reglas →

Estructura de una sugerencia y sus cambios

Una suggestion describe el tipo de problema; cada occurrence indica dónde aparece y si arText dispone de una sustitución o edición concreta.

suggestions[].metric_idIdentificador estable de la regla. Su definición se consulta en GET /v1/metrics.
suggestions[].summaryExplicación del problema encontrado en este informe.
suggestions[].recommendations[]Orientación general para revisar el problema; no equivale necesariamente a una sustitución literal.
occurrences[].textFragmento detectado por la métrica.
occurrences[].start / endRango sobre el texto original medido en puntos de código Unicode; start es inclusivo y end exclusivo.
occurrences[].replacementSustitución textual preferida cuando existe. null significa que la regla no ofrece una sustitución directa.
occurrences[].alternatives[]Otras sustituciones revisadas, sin repetir replacement. Puede ser un array vacío.
occurrences[].edits[]Cambios seguros normalizados como {start, end, text}. text vacío elimina el rango y start igual a end inserta texto.

Una ocurrencia sigue siendo un problema válido aunque replacement sea null y edits esté vacío. En ese caso debe mostrarse la explicación y dejar la revisión a la persona usuaria; la integración no debe fabricar un cambio.

200 · Completado

{
  "error": null,
  "external_id": "document-123",
  "position_in_queue": null,
  "report_id": "rep_7f12a4c8",
  "result": {
    "genre": {
      "id": "informe",
      "title": "Informe"
    },
    "language": "es",
    "measurements": [
      {
        "implementation_version": "1.0",
        "metric_id": "word-count",
        "unit": "words",
        "value": 12
      }
    ],
    "offset_unit": "unicode_code_points",
    "schema_version": "1.0",
    "suggestions": [
      {
        "category": "lexical",
        "explanation": null,
        "id": "sug_1",
        "implementation_version": "1.0",
        "metric_id": "redundant-expressions",
        "metric_title": "Eliminaci\u00f3n de expresiones redundantes",
        "occurrences": [
          {
            "alternatives": [],
            "edits": [
              {
                "end": 16,
                "start": 0,
                "text": ""
              }
            ],
            "end": 16,
            "id": "occ_1",
            "paragraph_index": 0,
            "replacement": null,
            "sentence_index": 0,
            "start": 0,
            "text": "En el d\u00eda de hoy"
          }
        ],
        "recommendations": [
          "Elimina la expresi\u00f3n si el contexto lo permite."
        ],
        "severity": "warning",
        "summary": "Conviene formular el fragmento de manera m\u00e1s directa."
      }
    ]
  },
  "status": "completed"
}
SiguienteMétricas y reglas