---
title: "Create a Field"
method: POST
path: "/services/custom_fields"
tags: ["Service Custom Fields"]
---

# Create a Field

`POST /services/custom_fields`

Creates a new Custom Field for Services, along with the Field Options if provided.

Scoped OAuth requires: `custom_fields.write`

## Headers

- `Accept` string, required
- `Content-Type` 'application/json', required

## Request body

- object
  - `field` ServiceCustomFieldsFieldCreateModel, required — Details of the custom field to be created.
    - `data_type` DataType, required — unresolved $ref
    - `description` Description — unresolved $ref
    - `display_name` DisplayName, required — unresolved $ref
    - `enabled` Enabled — unresolved $ref
    - `field_options` ServiceCustomFieldsFieldOptionUpdateModel[]
      - `data` object, required — The data content of the field option.
        - `data_type` 'string', required — The kind of data represented by this option. Must match the Field's `data_type`.
        - `value` string, required — The value of the field option. Must be unique within the field.
    - `field_type` FieldType, required — unresolved $ref
    - `name` Name, required — unresolved $ref

## Response `201`

The field object created, along with the Field Options if provided.

- object
  - `field` ServiceCustomFieldsFieldReadModel, required — Details of the custom field.
    - `created_at` string, date-time — The date/time the object was created at.
    - `data_type` DataType — unresolved $ref
    - `description` Description — unresolved $ref
    - `display_name` DisplayName — unresolved $ref
    - `enabled` Enabled — unresolved $ref
    - `field_options` ServiceCustomFieldsFieldOptionReadModel[] — The options for the custom field. Applies only to `single_value_fixed` and `multi_value_fixed` field types. These options are returned only if the `include[]` parameter specifies `field_options`.
      - `created_at` CreatedAt — unresolved $ref
      - `data` object
        - `data_type` 'string' — The kind of data represented by this option. Must match the Field's `data_type`.
        - `value` string
      - `id` Id — unresolved $ref
      - `type` 'field_option'
      - `updated_at` UpdatedAt — unresolved $ref
    - `field_type` FieldType — unresolved $ref
    - `id` string — The ID of the resource.
    - `name` Name — unresolved $ref
    - `self` string, url, nullable — The API show URL at which the object is accessible
    - `summary` string, nullable — A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `display_name`.
    - `type` 'field'
    - `updated_at` string, date-time — The date/time the object was updated at.

## Other responses

- `400` — Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.
- `403` — Caller is not authorized to view the requested resource. While your authentication is valid, the authenticated user or token does not have permission to perform this action.
- `500` — Internal Server Error the PagerDuty server experienced an error.

---

[API](https://skmtc.net/pagerduty/apis/rest-api.md) · [All operations](https://skmtc.net/pagerduty/apis/rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pagerduty/rest-api/revisions/b679a8f3f02c/schema)
