---
title: "Function Fork"
method: POST
path: "/functions/{function_id}/fork"
tags: ["functions"]
---

# Function Fork

`POST /functions/{function_id}/fork`

## Path parameters

- `function_id` string, required

## Headers

- `x-notte-request-origin` string, nullable
- `x-notte-sdk-version` string, nullable

## Response `200`

Successful Response

- FunctionResponse
  - `function_id` string, required — The ID of the function
  - `variables` ParameterInfo[], nullable — The variables to run the workflow with
    - `name` string, required
    - `type` string, nullable
    - `default` string, nullable
  - `created_at` string, date-time, required — The creation time of the workflow
  - `updated_at` string, date-time, required — The last update time of the workflow
  - `latest_version` string, required — The version of the workflow
  - `versions` string[], required — The versions of the workflow
  - `status` string, required — The status of the workflow
  - `name` string, nullable — The name of the workflow
  - `description` string, nullable — The description of the workflow
  - `shared` boolean — Whether the workflow is public and can beshared with other users
  - `reference_workflow_id` string, nullable — The ID of the reference workflow (i.e wether the workflow was forked from another workflow or not)
  - `published` boolean
  - `required_secrets` string[]
  - `source` string, nullable — Where the function was created from, stamped at creation. Read-only.
  - `self_healing` boolean — Whether the build is finished and the function may be healed automatically. Can only be enabled on a function that has a thread for self-heal to resume.
  - `instructions` string, nullable — Builder's operating notes: typical run duration, known failure modes, which parameters matter.
  - `schedule_cron` string, nullable — Cron expression the function runs on, or null if it is not scheduled.
  - `schedule_variables` object, nullable — Variables passed to each scheduled run, or null if it is not scheduled.
  - `schedule_state` 'enabled' | 'paused', nullable — 'enabled' while the schedule fires, 'paused' once the backend disabled it after a deterministic failure (exhausted credit, or an inactive function), null when there is no schedule.
  - `workflow_id` string, required

## Other responses

- `422` — Validation Error

## Changes

> 8 revisions in range; 1 could not be searched.

- **2026-07-31** `b1d81309d362` — 2 info
  - added the optional property `published` to the response with the `200` status
  - added the optional property `required_secrets` to the response with the `200` status

[Change history](https://skmtc.dev/notte/apis/notte-api/changes/functions/:function_id/fork/post.md)

---

[API](https://skmtc.dev/notte/apis/notte-api.md) · [All operations](https://skmtc.dev/notte/apis/notte-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/notte/notte-api/revisions/8be811b42f48/schema)
