Предложение реакции
POST /v1/contributions
POST /v1/contributions
Не тарифицируется. Отправлять может подтверждённый участник с kb:query. Обязательны источник, права на распространение, цитата и ключ идемпотентности. Шлюз бесплатно проверяет строгую химическую корректность и новизну; такая проверка не доказывает подлинность источника или успех эксперимента. Допустимое новое предложение может получить один бонусный вызов, а независимо одобренная реакция — ещё десять. Бонусы не являются деньгами. Дедупликация содержимого, источника и реакции вместе с суточными лимитами предотвращает повторные начисления. Ожидающие и химически некорректные предложения не становятся общим установленным фактом. Не включайте частные запросы, контекст и секреты. Отдельный предел: 10 отправок на пользователя в час и 100 на пространство в час. URL источника сохраняется для ручной проверки и не загружается автоматически.
Доступ
Требуется bearer-авторизация. Описание операции задаёт дополнительные права, роли и ограничения для сессий кабинета. Сам по себе API-ключ их не предоставляет.
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
reaction_smiles | string | да | |
source | ContributionSource | да | |
conditions | ContributionConditions ∣ null | нет | |
summary | string ∣ null | нет | |
idempotency_key | string | да |
Полная схема: 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
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | да | |
observation_id | string | да | |
reaction_smiles | string | да | |
canonical_reaction_smiles | string ∣ null | да | |
source | ContributionSource | да | |
conditions | ContributionConditions ∣ null | нет | |
summary | string ∣ null | нет | |
state | "pending" ∣ "needs_review" ∣ "accepted" ∣ "rejected" ∣ "duplicate" | да | |
created_at | string | да | |
updated_at | string | да | |
validation | ContributionValidation | да | |
rewards | ContributionRewards | да | |
review | ReviewedDecision ∣ null | нет | |
duplicate_of | string ∣ 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. Примеры показывают схемы, а не вымышленные успешные ответы.