---
updatedAt: 2026-08-06T09:23:15.000Z
agentTools:
  projectIndex: https://developers.alcmeon.com/llms.txt
---

# Send an answer message

Send an answer for an existing task. Optionally attach a media previously uploaded through the attachment endpoint using the returned access token. The processing is asynchronous and returns a "started" status when queued.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Send Answer API",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.alcmeon.com",
      "description": "Alcmeon production API server"
    }
  ],
  "x-readme": {
    "explorer-enabled": false
  },
  "components": {
    "securitySchemes": {
      "basic_auth": {
        "description": "Basic authentication using your environment Instance ID as username and Application Secret as password.\n",
        "type": "http",
        "scheme": "basic"
      },
      "bearer_token": {
        "description": "OAuth 2.0 Bearer token authentication.  Obtain a token by calling the /v1/oauth2/token endpoint with your credentials. The token is valid for one hour.\n",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ResponseError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A short string explaining the reason of the error."
          },
          "details": {
            "type": "string",
            "description": "Additional details about the error (optional)."
          }
        }
      },
      "SendAnswerRequest": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "The text message to send.",
            "maxLength": 10000,
            "example": "Hello! How can I help you today?"
          },
          "advisor_id": {
            "type": "integer",
            "description": "ID of the advisor sending the answer.",
            "example": 123
          },
          "company_id": {
            "type": "integer",
            "description": "ID of the company.",
            "example": 42
          },
          "task_id": {
            "type": "integer",
            "description": "ID of the task to answer to.",
            "example": 98765
          },
          "attachment": {
            "type": "object",
            "nullable": true,
            "description": "Optional attachment token previously obtained from the attachment upload endpoint.",
            "properties": {
              "access_token": {
                "type": "string",
                "description": "Short-lived access token referencing the uploaded media.",
                "example": "abC123..."
              }
            }
          }
        },
        "required": [
          "message",
          "advisor_id",
          "company_id",
          "task_id"
        ]
      },
      "SendAnswerResponse": {
        "type": "object",
        "properties": {
          "input_data": {
            "$ref": "#/components/schemas/SendAnswerRequest"
          },
          "status": {
            "type": "string",
            "enum": [
              "started"
            ],
            "example": "started"
          }
        }
      },
      "RateLimitResponseError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Rate limit reached"
          },
          "details": {
            "type": "string",
            "description": "A string showing the time when the rate limit will be reset. Example: {'rate_limited_until': '2024-01-22T13:05:41Z'}\n"
          }
        }
      }
    }
  },
  "security": [
    {
      "basic_auth": []
    },
    {
      "bearer_token": []
    }
  ],
  "paths": {
    "/v1/answer/send": {
      "post": {
        "tags": [
          "Answer"
        ],
        "summary": "Send an answer message",
        "description": "Send an answer for an existing task. Optionally attach a media previously uploaded through the attachment endpoint using the returned access token. The processing is asynchronous and returns a \"started\" status when queued.",
        "security": [
          {
            "basic_auth": []
          },
          {
            "bearer_token": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendAnswerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request accepted and queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendAnswerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request (e.g., empty message, message too long)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                },
                "examples": {
                  "empty_message": {
                    "summary": "Empty message",
                    "value": {
                      "error": "empty-message"
                    }
                  },
                  "message_too_long": {
                    "summary": "Message too long",
                    "value": {
                      "error": "message-too-long"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden (insufficient permissions or invalid attachment token)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                },
                "examples": {
                  "insufficient_permissions": {
                    "value": {
                      "error": "insufficient-permissions"
                    }
                  },
                  "invalid_attachment_token": {
                    "value": {
                      "error": "invalid-attachment-access-token"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Task not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                },
                "examples": {
                  "task_not_found": {
                    "value": {
                      "error": "task-not-found"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit reached. Default limit is set to 15 requests per minute.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RateLimitResponseError"
                }
              }
            }
          }
        }
      }
    }
  }
}
```