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

Предложение реакции

POST /v1/contributions

POST /v1/contributions

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

Не тарифицируется. Отправлять может подтверждённый участник с kb:query. Обязательны источник, права на распространение, цитата и ключ идемпотентности. Шлюз бесплатно проверяет строгую химическую корректность и новизну; такая проверка не доказывает подлинность источника или успех эксперимента. Допустимое новое предложение может получить один бонусный вызов, а независимо одобренная реакция — ещё десять. Бонусы не являются деньгами. Дедупликация содержимого, источника и реакции вместе с суточными лимитами предотвращает повторные начисления. Ожидающие и химически некорректные предложения не становятся общим установленным фактом. Не включайте частные запросы, контекст и секреты. Отдельный предел: 10 отправок на пользователя в час и 100 на пространство в час. URL источника сохраняется для ручной проверки и не загружается автоматически.

Доступ

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

Тело запроса

ПолеТипОбязательноОписание
reaction_smilesstringда
sourceContributionSourceда
conditionsContributionConditions ∣ nullнет
summarystring ∣ nullнет
idempotency_keystringда
Полная схема: ContributionSubmission
{
  "properties": {
    "reaction_smiles": {
      "type": "string",
      "maxLength": 100000,
      "minLength": 3,
      "title": "Reaction Smiles"
    },
    "source": {
      "$ref": "#/components/schemas/ContributionSource"
    },
    "conditions": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ContributionConditions"
        },
        {
          "type": "null"
        }
      ]
    },
    "summary": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000,
          "minLength": 10
        },
        {
          "type": "null"
        }
      ],
      "title": "Summary"
    },
    "idempotency_key": {
      "type": "string",
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Idempotency Key"
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "reaction_smiles",
    "source",
    "idempotency_key"
  ],
  "title": "ContributionSubmission"
}

Ответы

HTTPОписаниеТип
201Успешный ответapplication/json: ReactionContribution
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

Ответ: ReactionContribution

ПолеТипОбязательноОписание
idstringда
observation_idstringда
reaction_smilesstringда
canonical_reaction_smilesstring ∣ nullда
sourceContributionSourceда
conditionsContributionConditions ∣ nullнет
summarystring ∣ nullнет
state"pending" ∣ "needs_review" ∣ "accepted" ∣ "rejected" ∣ "duplicate"да
created_atstringда
updated_atstringда
validationContributionValidationда
rewardsContributionRewardsда
reviewReviewedDecision ∣ nullнет
duplicate_ofstring ∣ nullнет
Полная схема
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "observation_id": {
      "type": "string",
      "title": "Observation Id"
    },
    "reaction_smiles": {
      "type": "string",
      "title": "Reaction Smiles"
    },
    "canonical_reaction_smiles": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Canonical Reaction Smiles"
    },
    "source": {
      "$ref": "#/components/schemas/ContributionSource"
    },
    "conditions": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ContributionConditions"
        },
        {
          "type": "null"
        }
      ]
    },
    "summary": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Summary"
    },
    "state": {
      "type": "string",
      "enum": [
        "pending",
        "needs_review",
        "accepted",
        "rejected",
        "duplicate"
      ],
      "title": "State"
    },
    "created_at": {
      "type": "string",
      "title": "Created At"
    },
    "updated_at": {
      "type": "string",
      "title": "Updated At"
    },
    "validation": {
      "$ref": "#/components/schemas/ContributionValidation"
    },
    "rewards": {
      "$ref": "#/components/schemas/ContributionRewards"
    },
    "review": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ReviewedDecision"
        },
        {
          "type": "null"
        }
      ]
    },
    "duplicate_of": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Duplicate Of"
    }
  },
  "additionalProperties": true,
  "type": "object",
  "required": [
    "id",
    "observation_id",
    "reaction_smiles",
    "canonical_reaction_smiles",
    "source",
    "state",
    "created_at",
    "updated_at",
    "validation",
    "rewards"
  ],
  "title": "ReactionContribution"
}

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

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

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