---
title: "Send the next instruction"
method: POST
path: "/projects/{id}/messages"
tags: ["Projects"]
---

# Send the next instruction

`POST /projects/{id}/messages`

## Request

- Base URL: `https://app.vulk.dev/api/v1`
- URL: `https://app.vulk.dev/api/v1/projects/{id}/messages`
- Auth: HTTP bearer

Scope `projects.write`. The same body and the same receipt as POST /projects, applied to an existing project: `prompt` is the next instruction — or the answer to a question the operation is waiting for.

## Request body

- Instruction
  - `prompt` string, required: The brief, or the next instruction, in any language. It is handed to VULK unchanged.
  - `model` string: A model id from GET /models, or `auto`. Omit it to let VULK choose. A model your plan does not include answers 402.
  - `requestId` string, uuid: A UUID v4 you make. Send the same requestId to retry a submit whose answer was lost: the API returns the operation it already created instead of starting a second one. Omitted, VULK makes one.

## Response `202`

Admission receipt. The build runs after this answer; follow it with GET /operations/{requestId}. `accepted: false` with `operationStatus: "unconfirmed"` means VULK had not recorded the operation within the wait: read the operation, then retry with exactly the same requestId and body.

- AdmissionReceipt
  - `requestId` string, uuid, required
  - `accepted` boolean, required: True when VULK recorded the operation.
  - `operationStatus` 'running' | 'waiting' | 'done' | 'failed' | 'orphan' | 'unconfirmed' | 'null', nullable, required: `unconfirmed` when `accepted` is false.
  - `projectId` string
  - `editorUrl` string, uri
  - `nextAction` string, required: What to do next, in a sentence written for the caller.

## Other responses

- `400`: A parameter or body field is wrong; the sentence names it (code VALIDATION_ERROR).
- `401`: No key, a malformed key, or a revoked or expired one (code UNAUTHORIZED).
- `402`: The plan or credit balance does not cover the request (code PAYMENT_REQUIRED).
- `403`: The key lacks the scope the endpoint needs (code FORBIDDEN).
- `404`: No such endpoint, project, operation or file on this account (code NOT_FOUND).
- `413`: The body is over 64 KB (code PAYLOAD_TOO_LARGE).
- `429`: Over 60 requests in a minute; wait `retryAfter` seconds (code RATE_LIMITED).
- `503`: Generation or a dependency is temporarily unavailable; nothing was submitted (code SERVICE_UNAVAILABLE).

---

[API](https://skmtc.dev/vulk/apis/vulk-rest-api.md) · [All operations](https://skmtc.dev/vulk/apis/vulk-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vulk/apis/vulk-rest-api/revisions/b30510c5149c?raw)
