CyberRXN Docs
APIСправочник API

Репорт о записи

POST /v1/reports

POST /v1/reports

Все операции API · OpenAPI

Не тарифицируется. Нужен подтверждённый участник пространства с kb:query. Шлюз сохраняет неизменяемый исходный снимок, стабильную ссылку на источник, версию набора данных и хеш записи. Для одной находки повторно используйте один ключ идемпотентности; тот же ключ с другими данными возвращает 409. Передавайте только расхождение записи и доказательство из источника, без частных запросов пользователя и секретов. Ожидающий репорт не меняет научные данные. Отдельный предел отправки: 20 на пользователя в час и 200 на пространство в час; он не связан с оплатой и лимитом поиска.

Доступ

Требуется bearer-авторизация. Описание операции задаёт дополнительные права, роли и ограничения для сессий кабинета. Сам по себе API-ключ их не предоставляет.

Тело запроса

ПолеТипОбязательноОписание
observation_idstringда
category"field_conflict" ∣ "stage_misattribution" ∣ "missing_source" ∣ "structure_mismatch" ∣ "other"да
summarystringдаТолько обнаруженное расхождение записи, без запроса пользователя и частного контекста.
evidence_quotestring ∣ nullнет
proposed_patchCorrectionPatch ∣ nullнет
idempotency_keystringда
Полная схема: ReportSubmission
{
  "properties": {
    "observation_id": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "title": "Observation Id"
    },
    "category": {
      "type": "string",
      "enum": [
        "field_conflict",
        "stage_misattribution",
        "missing_source",
        "structure_mismatch",
        "other"
      ],
      "title": "Category"
    },
    "summary": {
      "type": "string",
      "maxLength": 2000,
      "minLength": 10,
      "title": "Summary",
      "description": "Only the observed record issue; no user query or private context."
    },
    "evidence_quote": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 4000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Evidence Quote"
    },
    "proposed_patch": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/CorrectionPatch"
        },
        {
          "type": "null"
        }
      ]
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Idempotency Key"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "observation_id",
    "category",
    "summary",
    "idempotency_key"
  ],
  "title": "ReportSubmission"
}

Ответы

HTTPОписаниеТип
201Успешный ответapplication/json: ObservationReport
401Требуется авторизацияapplication/problem+json: ProblemDetails
403Доступ запрещёнapplication/problem+json: ProblemDetails
404Не найденоapplication/problem+json: ProblemDetails
409Конфликтapplication/problem+json: ProblemDetails
413Превышен размер запросаapplication/problem+json: ProblemDetails
422Ошибка входных данныхapplication/problem+json: ProblemDetails
429Превышен лимитapplication/problem+json: ProblemDetails
502Ошибка шлюзаapplication/problem+json: ProblemDetails
503Сервис недоступенapplication/problem+json: ProblemDetails

Ответ: ObservationReport

ПолеТипОбязательноОписание
idstringда
observation_idstringда
category"field_conflict" ∣ "stage_misattribution" ∣ "missing_source" ∣ "structure_mismatch" ∣ "other"да
summarystringда
evidence_quotestring ∣ nullнет
proposed_patchCorrectionPatch ∣ nullнет
state"pending" ∣ "accepted" ∣ "rejected" ∣ "needs_information" ∣ "needs_revalidation"да
created_atstringда
updated_atstringда
referenceReportReferenceда
reviewReviewedDecision ∣ nullнет
correctionCorrectionVersion ∣ nullнет
Полная схема
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "observation_id": {
      "type": "string",
      "title": "Observation Id"
    },
    "category": {
      "type": "string",
      "enum": [
        "field_conflict",
        "stage_misattribution",
        "missing_source",
        "structure_mismatch",
        "other"
      ],
      "title": "Category"
    },
    "summary": {
      "type": "string",
      "title": "Summary"
    },
    "evidence_quote": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Evidence Quote"
    },
    "proposed_patch": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/CorrectionPatch"
        },
        {
          "type": "null"
        }
      ]
    },
    "state": {
      "type": "string",
      "enum": [
        "pending",
        "accepted",
        "rejected",
        "needs_information",
        "needs_revalidation"
      ],
      "title": "State"
    },
    "created_at": {
      "type": "string",
      "title": "Created At"
    },
    "updated_at": {
      "type": "string",
      "title": "Updated At"
    },
    "reference": {
      "$ref": "#/components/schemas/ReportReference"
    },
    "review": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ReviewedDecision"
        },
        {
          "type": "null"
        }
      ]
    },
    "correction": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/CorrectionVersion"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": true,
  "type": "object",
  "required": [
    "id",
    "observation_id",
    "category",
    "summary",
    "state",
    "created_at",
    "updated_at",
    "reference"
  ],
  "title": "ObservationReport"
}

Эта страница генерируется из OpenAPI. Примеры показывают схемы, а не вымышленные успешные ответы.

Расход и оплата · Типизированные ошибки

На этой странице