> ## Documentation Index
> Fetch the complete documentation index at: https://api-reference.scale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sensor Fusion Tasks

> Create Sensor Fusion Tasks

# Create Sensor Fusion Tasks

<Note title="Create a SFS task using SDK">
  \[**Recommended**] We recommend using this [**SDK documentation**](https://github.com/scaleapi/scaleapi-python-client) to create Sensor Fusion tasks.
</Note>

This endpoint creates a `sensorfusion` task. In this task, annotators load the sensor fusion scene and apply various annotations to mark objects or segment the point cloud. Sensor fusion scenes may contain 3D point clouds (from LiDARs, radars, and/or point sensors) and 2D images/videos (from camera sensors). Supported annotations include 3D cuboids, point cloud segmentation, 3D keypoints, and top-down polygons.

PosePath, CameraSensor, and LidarSensor.

<ParamField path="Body Params" type="object">
  <ParamField path="attachments" type="array of strings" required>
    List of URLs to the Sensor Fusion Scene objects you'd like to be labeled. For sensor fusion tasks, there must only be one url provided

    ***
  </ParamField>

  <ParamField path="scene_format" type="string" required>
    The format of the scene provided. Currently only supports `sensor_fusion`
  </ParamField>

  <ParamField path="project" type="string" required>
    The name of the project to associate this task with.

    ***
  </ParamField>

  <ParamField path="instruction" type="string" required>
    A markdown-enabled string or iframe embed google doc explaining how to do the task. You can use [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) to show example images, give structure to your instructions, and more.
  </ParamField>

  <ParamField path="annotation_definition" type="array of objects" required>
    List of annotation definitions to use for labeling.
  </ParamField>

  <ParamField path="callback_url" type="string" required>
    The full url (including the scheme http\:// or https\://) of the callback when the task is completed.

    ***
  </ParamField>

  <ParamField path="unique_id" type="object">
    A arbitrary ID that you can assign to a task and then query for later. This ID must be unique across all projects under your account, otherwise the task submission will be rejected. See **[Avoiding Duplicate Tasks](/docs/api-reference/data-engine-reference#avoiding-duplicate-tasks)** for more details

    ***
  </ParamField>

  <ParamField path="clear_unique_id_on_error" type="boolean">
    If set to be true, if a task errors out after being submitted, the unique id on the task will be unset. This param allows workflows where you can re-submit the same unique id to recover from errors automatically

    ***
  </ParamField>

  <ParamField path="is_frameless" type="boolean" required>
    Whether to label as a frameless task
  </ParamField>

  <ParamField path="tags" type="array of strings">
    Arbitrary labels that you can assign to a task. At most 5 tags are allowed per task. You can query tasks with specific tags through the task retrieval API.
  </ParamField>
</ParamField>

```python theme={null}
import requests

url = "https://api.scale.com/v1/task/sensorfusion"

payload = {
    "scene_format": "\"sensor_fusion\"",
    "instruction": "**Instructions:** Please label all the things",
    "callback_url": "https://example.com/callback"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

```
