> For the complete documentation index, see [llms.txt](https://fusionauth.io/docs/llms.txt)

# Create a Lambda

API documentation for the FusionAuth Create a Lambda API.

# Create a Lambda

This API is used to create a Lambda.

[!Global API Key Authentication](https://fusionauth.io/docs/apis/authentication.md#global-api-key-authentication)

Create a Lambda with a randomly generated Id

POST/api/lambda

OpenAPI Spec

[!Global API Key Authentication](https://fusionauth.io/docs/apis/authentication.md#global-api-key-authentication)

Create a Lambda with the provided unique Id

POST/api/lambda/{lambdaId}

OpenAPI Spec

## Request

### Request Parameters

`lambdaId`UUIDoptionalDefaults to secure random UUIDImmutable

The Id to use for the new Lambda. If not specified a secure random UUID will be generated.

#### Request Body

`lambda.body`Stringrequired

The lambda function body, a JavaScript function.

`lambda.debug`BooleanoptionalDefaults to false

Whether or not debug event logging is enabled for this Lambda.

`lambda.enabled`BooleanoptionalDefaults to trueDEPRECATED

This value is not used, and may be removed in a future version.

`lambda.engineType`StringrequiredDefaults to GraalJSAvailable since 1.35.0

The JavaScript execution engine for the lambda. The possible values are:

*   `GraalJS`
*   `Nashorn` Deprecated since 1.35.0, Removed in 1.49.0

`lambda.name`Stringrequired

The name of the lambda.

`lambda.type`Stringrequired

The lambda type. The possible values are:

*   `AppleReconcile`Available since 1.17.0
*   `ClientCredentialsJWTPopulate`Available since 1.28.0
*   `EpicGamesReconcile`Available since 1.28.0
*   `ExternalJWTReconcile`Available since 1.17.0
*   `FacebookReconcile`Available since 1.17.0
*   `GoogleReconcile`Available since 1.17.0
*   `HYPRReconcile`Available since 1.17.0
*   `JWTPopulate`
*   `LDAPConnectorReconcile`Available since 1.18.0
*   `LinkedInReconcile`Available since 1.23.0
*   `LoginValidation`Available since 1.53.0
*   `MFARequirement`Available since 1.62.0
*   `NintendoReconcile`Available since 1.36.0
*   `OpenIDReconcile`
*   `SAMLv2Populate`
*   `SAMLv2Reconcile`
*   `SCIMGroupRequestConverter`Available since 1.36.0
*   `SCIMGroupResponseConverter`Available since 1.36.0
*   `SCIMUserRequestConverter`Available since 1.36.0
*   `SCIMUserResponseConverter`Available since 1.36.0
*   `SelfServiceRegistrationValidation`Available since 1.43.0
*   `SonyPSNReconcile`Available since 1.28.0
*   `SteamReconcile`Available since 1.28.0
*   `TwitchReconcile`Available since 1.28.0
*   `TwitterReconcile`Available since 1.17.0
*   `UserInfoPopulate`Available since 1.50.0
*   `XboxReconcile`Available since 1.28.0

*Example Request JSON*

```json
{
  "lambda": {
    "body": "function reconcile(user, registration, samlResponse) { registration.roles = samlResponse.assertion.attributes['roles'] || [];}",
    "debug": false,
    "engineType": "GraalJS",
    "name": "Name",
    "type": "SAMLv2Reconcile"
  }
}
```

## Response

The response for this API contains the Lambda that was created.

*Response Codes*

| Code | Description |
| --- | --- |
| 200 | The request was successful. The response will contain a JSON body. |
| 400 | The request was invalid and/or malformed. The response will contain an [Errors](https://fusionauth.io/docs/apis/errors.md) JSON Object with the specific errors. This status will also be returned if a paid FusionAuth license is required and is not present. |
| 401 | You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See [Authentication](https://fusionauth.io/docs/apis/authentication.md). |
| 500 | There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty. |

#### Response Body

`lambda.body`String

The lambda function body, a JavaScript function.

`lambda.debug`Boolean

Whether or not debug event logging is enabled for this Lambda.

`lambda.enabled`BooleanDEPRECATED

This value is not used, and may be removed in a future version.

`lambda.engineType`String

The JavaScript execution engine for the lambda. The possible values are:

*   `GraalJS`
*   `Nashorn` Deprecated since 1.35.0, Removed in 1.49.0

`lambda.id`UUID

The Id of the Lambda.

`lambda.insertInstant`Long

The [instant](https://fusionauth.io/docs/reference/data-types.md#instants) that the lambda created.

`lambda.lastUpdateInstant`Long

The [instant](https://fusionauth.io/docs/reference/data-types.md#instants) that the lambda was last updated.

`lambda.name`String

The name of the lambda.

`lambda.type`String

The lambda type. The possible values are:

*   `AppleReconcile`
*   `ClientCredentialsJWTPopulate`
*   `EpicGamesReconcile`
*   `ExternalJWTReconcile`
*   `FacebookReconcile`
*   `GoogleReconcile`
*   `HYPRReconcile`
*   `JWTPopulate`
*   `LDAPConnectorReconcile`
*   `LinkedInReconcile`
*   `LoginValidation`
*   `MFARequirement`
*   `NintendoReconcile`
*   `OpenIDReconcile`
*   `SAMLv2Populate`
*   `SAMLv2Reconcile`
*   `SCIMGroupRequestConverter`
*   `SCIMGroupResponseConverter`
*   `SCIMUserRequestConverter`
*   `SCIMUserResponseConverter`
*   `SelfServiceRegistrationValidation`
*   `SonyPSNReconcile`
*   `SteamReconcile`
*   `TwitchReconcile`
*   `TwitterReconcile`
*   `UserInfoPopulate`
*   `XboxReconcile`

*Example Response JSON*

```json
{
  "lambda": {
    "id": "7e66bac3-fa41-47fb-b8fd-12b35b5e1807",
    "body": "function reconcile(user, registration, samlResponse) { registration.roles = samlResponse.assertion.attributes['roles'] || [];}",
    "name": "Name",
    "debug": false,
    "enabled": true,
    "engineType": "GraalJS",
    "insertInstant": 1572469040579,
    "lastUpdateInstant": 1595361143101,
    "type": "SAMLv2Reconcile"
  }
}
```