---
title: "Puts a version online"
method: POST
path: "/lambdas/{privateKey}/deployment/start"
tags: ["Deployment"]
---

# Puts a version online

`POST /lambdas/{privateKey}/deployment/start`

## Request

- Base URL: `https://genhttp.dev/api/v1`
- URL: `https://genhttp.dev/api/v1/lambdas/{privateKey}/deployment/start`
- Auth: none declared

Compiles the version and, once it compiles, serves it from the next request on, in place of whatever was online.
The code that runs once as the lambda starts - outside the handler it returns, migrating its database, say - runs
now, and what it prints is in the lambda's log. The body is optional: without one, or without a `version`, the
newest version goes online.

## Path parameters

- `privateKey` string, required

## Request body

- DeploymentRequest: Which version to put online.
  - `Version` integer, nullable: The number of the version; left out, the newest

## Response `200`

The version is online. `diagnostics` may hold warnings of the compiler.

- DeploymentOutcomeResponse: What came of an attempt to put a version online.
  - `Success` boolean: Whether it compiled and is online now. Where it is not, whatever was online before still is.
  - `Lambda` LambdaResponse: A lambda, as whoever holds its editor key sees it.
    - `PublicKey` string: Names its address below the hosting domain. Not a secret; its owner may change it.
    - `PrivateKey` string: The editor key, which authorizes every call about the lambda. Treat it like a password.
    - `Tier` string: `Free`, `Premium` or `Demo`, assigned by the operator. Decides its limits, whether it is kept online while nobody uses it, and whether it may answer at a domain of its own.
    - `Created` string, date-time: When it was created
    - `Modified` string, date-time: When something about it last changed: a save, a deployment, a setting
    - `ActiveVersion` integer, nullable: The version that is online; absent while nothing is
    - `LatestVersion` integer, nullable: The newest version saved, which may be ahead of the one online
    - `PublicUrl` string: Its address below the hosting domain, named after its public key: `https://quiz.genhttp.run/`. While it answers at a domain of its own, this address sends its visitors on to the domain.
    - `EditorPath` string: Where its editor is on this site: `/editor/{privateKey}`. Holds the editor key.
    - `DeployedAt` string, date-time, nullable: When the version online went online; absent while nothing is
    - `DeployedUntil` string, date-time, nullable: When it is taken offline unless it is visited or edited before then - each visit and each edit moves this on. Absent while it is offline, and for a tier that keeps it online.
    - `KeptUntil` string, date-time, nullable: When it is deleted unless it is visited or edited before then. Absent for a tier that keeps it.
    - `Domain` string, nullable: The domain of its own it is configured to answer at, whether or not its tier lets it
    - `DomainServed` boolean: Whether it answers at that domain: it has one, and its tier includes it
    - `Address` string: Where to link to it: its domain while that is served, `publicUrl` otherwise
    - `View` string: How its editor opens for somebody who has not chosen a view of their own: `Full` or `Simple`
    - `GitPath` string: Where it is cloned with git and pushed to, on this site. The versions are the commits of `main`, the features the other branches. Holds the editor key, like the editor's path.
  - `Diagnostics` CompilationDiagnostic[]: What the compiler said: the errors that kept it offline, or the warnings of a version that went online
    - `Severity` string: `Error`, which keeps the code from going online, or `Warning`
    - `Id` string: What kind of message it is: the C# compiler's (`CS1002`), `LAMBDA0001` for something lambdas may not do, `LAMBDA0002` for a handler the platform cannot serve, or `LAMBDA` for anything else the platform refused
    - `Message` string: What is wrong, and often what to do about it
    - `Line` integer: The line in the file, counting from 1; 0 when it is about no line
    - `Column` integer: The column in the line, counting from 1; 0 when it is about no line
    - `File` string, nullable: The name of the file it is in, as the lambda names it; absent when it is about none of them

## Other responses

- `400`: The lambda has no version yet.
- `403`: The lambda is a demo, which anybody may read and nobody may change. Create a lambda of your own from it instead: `POST /lambdas` with the demo's id as `template`.
- `404`: No lambda has this editor key, or it has no such version - it never existed, or it was not kept.
- `422`: The code does not compile. `diagnostics` holds what the compiler said, with the file, line and column of each problem; nothing was put online, and whatever was online before still is.

---

[API](https://skmtc.dev/genhttp/apis/genhttp-lambda-api.md) · [All operations](https://skmtc.dev/genhttp/apis/genhttp-lambda-api/llms.txt) · [OpenAPI document](https://skmtc.dev/genhttp/apis/genhttp-lambda-api/revisions/8b36699e03df?raw)
