/projects/{project_id}/branches/{branch_id}/functions/{slug}/deploymentsDeploy code to a functionCreates a deployment for the function. Supply any subset of zip, environment, and runtime; omitted fields inherit the function's latest version. At least one field must be supplied. The first deployment of a function must include zip. The newest deployment becomes active.
Note: This endpoint is currently in Beta.
Parameters
project_idstringpathrequiredThe Neon project ID
branch_idstringpathrequiredThe Neon branch ID
slugstringpathrequiredThe function slug
Request body
requiredmultipart/form-data
environmentstringOptional JSON object (a string-to-string map) of environment variables for the deployment, e.g. {"KEY":"VALUE"}. Carried as a JSON-encoded string because multipart form data does not support typed object parts. Values are write-only: they are encrypted at rest, and responses carry only the variable names (the `environment` array), never the values.
runtimestringzipstring · binaryOptional ZIP archive of the function source code. Omit to reuse the latest version's bundle (a config-only change). Required for the first deployment of a function.
{
"environment": "string",
"runtime": "nodejs24",
"zip": "binary"
}Responses
deploymentobjectrequiredShow child attributes
created_atstringrequiredenvironmentarray of stringThe NAMES of the deployment's environment variables, sorted. Values are encrypted at rest and are never returned — they are write-only. To change a value, deploy the variable with the new value; to remove a variable, deploy it with an empty value.
Show child attributes
errorstringHuman-readable reason the deployment build failed. Present only when `status` is `failed`.
idinteger · int32requiredThe deployment id, which is the platform version number (monotonic per function).
memory_mibinteger · int32requiredruntimestringrequiredstatusstringrequiredBuild lifecycle status of the deployment.
{
"deployment": {
"created_at": "string",
"environment": [
"string"
],
"error": "string",
"id": 0,
"memory_mib": 0,
"runtime": "string",
"status": "building"
}
}codestringrequiredmessagestringrequiredError message
request_idstringUnique identifier for the request, useful for debugging. You can set this value manually by including an `X-Request-ID` header in the request. If not provided, the value will be generated automatically.
{
"code": "",
"message": "string",
"request_id": "string"
}