> ## Documentation Index
> Fetch the complete documentation index at: https://docs.membrane.agency/llms.txt
> Use this file to discover all available pages before exploring further.

# Functions

Membrane Functions implement business logic inside Membrane Elements.

## Function Types

Functions can be implemented in one of the following ways depending on where the function is used:

### Core Implementation Function Types

* [Mapping](/docs/references/functions/function-types/mapping) – Transform input data using JSONata expressions without making API calls
* [REST API Mapping](/docs/references/functions/function-types/rest-api-mapping) – Map to REST API endpoints
* [JavaScript](/docs/references/functions/function-types/javascript) – Write custom code for maximum flexibility
* [GraphQL API Mapping](/docs/references/functions/function-types/graphql-api-mapping) – Map to GraphQL API endpoints

### API Request Action Function Types

* [api-request-to-external-app](/docs/references/functions/function-types/api-request-to-external-app) – Make API requests to the external service
* [api-request-to-your-app](/docs/references/functions/function-types/api-request-to-your-app) – Make API requests to your internal API
* [http-request](/docs/references/functions/function-types/http-request) – Make arbitrary HTTP requests to any endpoint

### Code Execution Action Function Types

* [JavaScript](/docs/references/functions/function-types/javascript) – Run custom JavaScript/TypeScript code (includes `run-javascript` action type)

### Flow Node Function Types

* [run-action](/docs/references/functions/function-types/run-action) – Run predefined actions

### Special Function Types

* `not-supported` – Mark function as not supported by the external API
