REST API endpoint

GET /v1/proofreading

Up to 100 currently visible proofreading suggestions from the most recently checked articles of one tracker.

Request

GET https://api.nowmetrix.com/v1/proofreading?site=TRACKER_ID&limit=50

Use this endpoint to retrieve the latest current proofreading suggestions for an authorized tracker. Results marked as corrected or covered by an active ignore rule are excluded.

Authentication

Requires an API key in the Authorization header: Authorization: Bearer nm_YOUR_KEY. The key must have access to the requested tracker ID.

Query parameters

Name Type Required Description
site string required NowMetrix tracking ID. The API key must have access to this tracker. Do not pass the publication domain.
limit integer optional Maximum number of suggestions. Defaults to 50 and is capped at 100.

cURL example

curl -H "Authorization: Bearer nm_YOUR_KEY" \
  "https://api.nowmetrix.com/v1/proofreading?site=TRACKER_ID&limit=50"

Example response

{
  "site": "TRACKER_ID",
  "updated_at": "2026-01-15T09:30:00+00:00",
  "limit": 50,
  "count": 1,
  "issues": [
    {
      "id": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
      "checked_at": "2026-01-15T09:25:00+00:00",
      "article": {
        "title": "Example article",
        "url": "https://www.example.com/news/example-article"
      },
      "language": {
        "code": "en",
        "name": "English"
      },
      "category": {
        "code": "consistency",
        "label": "Article inconsistency"
      },
      "location": {
        "code": "body",
        "label": "Body"
      },
      "original": "Northwind Lab",
      "original_occurrence": 1,
      "correction": "Northwind Labs",
      "context": "The announcement was published by Northwind Lab on Monday.",
      "explanation": "The organization is named Northwind Labs elsewhere in the same article.",
      "confidence": "high"
    }
  ]
}

Response fields

Field Type Description
site string Tracking ID used for the request.
updated_at string UTC timestamp for when the payload was generated.
limit integer Effective result limit after validation and capping.
count integer Number of visible suggestions returned.
issues[] array<object> Visible suggestions ordered by checked_at descending.
issues[].id string Opaque stable identifier for this suggestion occurrence.
issues[].checked_at string UTC timestamp of the article check that produced the current suggestion.
issues[].article object Article title and full URL. Internal article IDs are not exposed.
issues[].language object Detected language code and display name.
issues[].category object Machine-readable category code and localized label. The consistency code identifies article-internal contradictions in names or factual details such as numbers, dates, times, ages, locations, and roles.
issues[].location object Article section code and localized label.
issues[].original string Original text identified by proofreading.
issues[].original_occurrence integer|null 1-based occurrence of original within context. Legacy results can be null when repeated text cannot be located unambiguously.
issues[].correction string Suggested correction.
issues[].context string Normalized and length-limited article context.
issues[].explanation string Explanation for the suggestion.
issues[].confidence string Confidence level accepted by the proofreading pipeline.

Freshness and caching

Responses are microcached per tracker and limit for 30 seconds. The response includes X-NowMetrix-Microcache with HIT or MISS. checked_at is the article check time; the endpoint is not an append-only history of first detections.

Errors

HTTP Code Description
400 site_required The site query parameter is missing.
401 missing_token The Authorization header is missing.
401 invalid_token The token is invalid or revoked.
403 site_not_authorized The API key has no access to this tracker.
429 rate_limit_exceeded The rate limit has been exceeded.
503 redis_unavailable The realtime backend is temporarily unavailable.
409 proofreading_not_enabled Proofreading is not enabled for the requested tracker.
500 encoding_failed The response could not be encoded.
503 database_unavailable The proofreading database is temporarily unavailable.
503 proofreading_unavailable The proofreading feed could not be generated.
{
  "error": {
    "code": "proofreading_not_enabled",
    "message": "Proofreading is not enabled for this tracker."
  }
}