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

# Create Job Type

> Create a custom job type for your workspace.

Requires an API key with `full_access` scope.

Creates a custom job type that can be used when creating jobs. Predefined types (e.g. Wind Turbine, Cell Tower) are always available and do not need to be created.

## Body

<ParamField body="name" type="string" required>
  Job type name. 1 to 50 characters.
</ParamField>

<ParamField body="icon" type="string" default="settings">
  Icon identifier used in the dashboard. Max 20 characters. Defaults to
  `settings`. Icons are based on [Lucide](https://lucide.dev/icons/) icon names
  (e.g. `wind`, `radio`, `home`, `zap`, `sun`, `hammer`, `database`,
  `traffic-cone`, `settings`).
</ParamField>

## Response

<ResponseField name="id" type="string" required>
  The unique identifier of the newly created job type.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.dronebundle.com/v1/job-types \
    -H "Authorization: Bearer v1_your_api_key_here" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Bridge Survey"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "id": "019d4370-abcd-7000-8000-123456789abc"
  }
  ```
</ResponseExample>

## Errors

**400 Bad Request** - Validation failed.

```json theme={null}
{
  "message": "name is required"
}
```

Other validation messages include:

* `name must be between 1 and 50 characters`
* `icon must be a string`
* `icon must be less than 20 characters`
