curl --request POST \
--url https://api.phylo.bio/v1/experimental/tasks/{task_id}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "Please re-check variant rs80357065 against the latest ClinVar submission."
}
'{
"type": "message_result",
"user_message": {
"type": "message",
"id": "msg_a4f9b5cc30d8",
"task_id": "tsk_017ilCeuDpMWTSH9Ah1syUGJ",
"role": "user",
"platform": "api"
},
"assistant_message": {
"id": "msg_1a0ef0fa8e26",
"type": "message",
"task_id": "tsk_017ilCeuDpMWTSH9Ah1syUGJ",
"created_at": "2026-08-12T21:21:08.735000Z",
"role": "assistant",
"status": "completed",
"completed_at": "2026-08-12T21:31:37.204000Z",
"content": [
{
"type": "text",
"text": "Loaded the genetic-variant-annotation skill. For these 3 BRCA1 variants I'll (1) query ClinVar's REST API directly for each rsID to get current assertions, review status, star ratings, and conditions, and (2) cross-reference NCBI's ClinVar records for conflicting submissions and literature PMIDs."
},
{
"type": "tool_use",
"id": "toolu_01RkjLRcNtbVHBBwWDDk7gmF",
"name": "Skill",
"input": {
"action": "load",
"name": "genetic-variant-annotation"
}
},
{
"type": "tool_result",
"tool_use_id": "toolu_01RkjLRcNtbVHBBwWDDk7gmF",
"content": "# Skill: genetic-variant-annotation\n\n**Category**: genomics_genetics\n\n**Description**: Annotate genomic variants in VCF files with functional effects, clinical significance, and pathogenicity predictions. … (truncated)"
},
{
"type": "text",
"text": "Here is the full structured report. Two deliverables are saved: `report_Patient001_BRCA1_variants.md` and `Patient001_BRCA1_variant_report.json`. All three variants are confirmed pathogenic by ClinVar (3-star review); PARP inhibitor eligibility applies for HBOC and ovarian indications."
}
],
"platform": "api",
"input": {
"user_message_id": "msg_a4f9b5cc30d8",
"file_ids": []
}
}
}Messages
Send a message
Send a message to the agent and get its reply.
POST
/
experimental
/
tasks
/
{task_id}
/
messages
curl --request POST \
--url https://api.phylo.bio/v1/experimental/tasks/{task_id}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "Please re-check variant rs80357065 against the latest ClinVar submission."
}
'{
"type": "message_result",
"user_message": {
"type": "message",
"id": "msg_a4f9b5cc30d8",
"task_id": "tsk_017ilCeuDpMWTSH9Ah1syUGJ",
"role": "user",
"platform": "api"
},
"assistant_message": {
"id": "msg_1a0ef0fa8e26",
"type": "message",
"task_id": "tsk_017ilCeuDpMWTSH9Ah1syUGJ",
"created_at": "2026-08-12T21:21:08.735000Z",
"role": "assistant",
"status": "completed",
"completed_at": "2026-08-12T21:31:37.204000Z",
"content": [
{
"type": "text",
"text": "Loaded the genetic-variant-annotation skill. For these 3 BRCA1 variants I'll (1) query ClinVar's REST API directly for each rsID to get current assertions, review status, star ratings, and conditions, and (2) cross-reference NCBI's ClinVar records for conflicting submissions and literature PMIDs."
},
{
"type": "tool_use",
"id": "toolu_01RkjLRcNtbVHBBwWDDk7gmF",
"name": "Skill",
"input": {
"action": "load",
"name": "genetic-variant-annotation"
}
},
{
"type": "tool_result",
"tool_use_id": "toolu_01RkjLRcNtbVHBBwWDDk7gmF",
"content": "# Skill: genetic-variant-annotation\n\n**Category**: genomics_genetics\n\n**Description**: Annotate genomic variants in VCF files with functional effects, clinical significance, and pathogenicity predictions. … (truncated)"
},
{
"type": "text",
"text": "Here is the full structured report. Two deliverables are saved: `report_Patient001_BRCA1_variants.md` and `Patient001_BRCA1_variant_report.json`. All three variants are confirmed pathogenic by ClinVar (3-star review); PARP inhibitor eligibility applies for HBOC and ovarian indications."
}
],
"platform": "api",
"input": {
"user_message_id": "msg_a4f9b5cc30d8",
"file_ids": []
}
}
}Sends to an existing task. Create one with
POST /tasks first. If the agent is still working, the response holds the reply so far; the rest arrives on GET /tasks/{task_id}/messages/{id}.
Model tier
model sets the tier for a new task:
standard: the default balance of speed and capabilityfast: lower latency on a lighter modelmax: the highest-capability model
422. The tier is fixed when the task is created, so it is ignored when you pass task_id. POST /tasks does not accept a tier.
Skills
skill runs a skill on your message. Pass an id or name from List skills; your content is the input. An unknown skill returns 404. Ignored when you pass task_id.
Attached files
file_ids must reference files already finalized in the task’s project. A file that cannot be read is skipped: the message still sends, without that attachment.Authorizations
Requires an API key. See the Authentication guide.
Path Parameters
Body
application/json
Body for POST /tasks/{task_id}/messages.
content is a string or a list of content blocks. Task-level settings
(title, model tier, plan/auto mode) belong to POST /tasks.
Response
200 - application/json
Message sent. Always includes user_message; includes assistant_message once the agent has replied.
