---
openapi: 3.0.3
info:
  title: Braze REST API – Delete catalog field
  description: |
    ## Prerequisites

    To use this endpoint, you'll need an [API key]({{site.baseurl}}/api/basics#rest-api-key-permissions) with the `catalogs.delete_fields` permission.

    ## Rate limit

    This endpoint has a shared rate limit of 50 requests per minute between all asynchronous catalog fields and selections endpoints, as documented in [API rate limits]({{site.baseurl}}/api/api_limits/).
  version: 1.0.0
  contact:
    name: Braze Support
    url: https://www.braze.com/docs/braze_support/
  license:
    name: Braze Documentation
    url: https://www.braze.com/docs/api/home/
servers:
  - url: https://rest.iad-01.braze.com
    description: US-01
  - url: https://rest.iad-02.braze.com
    description: US-02
  - url: https://rest.iad-03.braze.com
    description: US-03
  - url: https://rest.iad-04.braze.com
    description: US-04
  - url: https://rest.iad-05.braze.com
    description: US-05
  - url: https://rest.iad-06.braze.com
    description: US-06
  - url: https://rest.iad-07.braze.com
    description: US-07
  - url: https://rest.iad-08.braze.com
    description: US-08
  - url: https://rest.us-10.braze.com
    description: US-10
  - url: https://rest.fra-01.braze.eu
    description: EU-01
  - url: https://rest.fra-02.braze.eu
    description: EU-02
  - url: https://rest.au-01.braze.com
    description: AU-01
  - url: https://rest.id-01.braze.com
    description: ID-01
  - url: https://rest.jp-01.braze.com
    description: JP-01
  - url: https://rest.kr-01.braze.com
    description: KR-01
security:
- BearerAuth: []
paths:
  "/catalogs/{catalog_name}/fields/{field_name}":
    delete:
      summary: Delete catalog field
      operationId: delete_catalogs_catalog_name_fields_field_name_delete_catalog_field
      parameters:
        - name: catalog_name
          in: path
          required: true
          description: Name of the catalog.
          schema:
            type: string
          example: restaurants
        - name: field_name
          in: path
          required: true
          description: Name of the catalog field.
          schema:
            type: string
          example: ratings
      responses:
        "202":
          description: |
            The request was accepted for asynchronous processing. The field is removed from the catalog. No action needed.

            The status code `202` could return the following response body:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogFieldResponse'
              examples:
                success:
                  summary: Field queued for deletion
                  value:
                    message: success
        "400":
          description: |
            Bad request. To resolve it:

            - **`field-required`:** The request tries to delete the required `id` field. Don't delete the `id` field.
            - **`field-referenced-by-selection`:** Check that the catalog field is currently in use by a selection.
            - **`field-is-inventory`:** Check that the catalog field is used as an inventory field.
            - **`invalid-field-name`:** Check that the catalog field name is valid.

            Refer to [Troubleshooting](#troubleshooting) for more information about errors you may encounter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                field_required:
                  summary: The id field can't be deleted
                  value:
                    errors:
                      - id: field-required
                        message: Field id is required and can not be deleted
                        parameters: []
                        parameter_values: []
                    message: Invalid Request
                field_referenced_by_selection:
                  summary: The field is in use in a selection
                  value:
                    errors:
                      - id: field-referenced-by-selection
                        message: Field ratings is in use in a selection and can not be deleted
                        parameters: []
                        parameter_values: []
                    message: Invalid Request
                field_is_inventory:
                  summary: The field is an inventory field
                  value:
                    errors:
                      - id: field-is-inventory
                        message: Field ratings is an inventory field and can not be deleted
                        parameters: []
                        parameter_values: []
                    message: Invalid Request
                invalid_field_name:
                  summary: The field doesn't exist
                  value:
                    errors:
                      - id: invalid-field-name
                        message: Field ratings does not exist
                        parameters:
                          - field_name
                        parameter_values:
                          - ratings
                    message: Invalid Request
        "401":
          description: |
            Unauthorized. The REST API key is missing, malformed, or sent to the wrong REST endpoint. Send the key as `Authorization: Bearer YOUR_REST_API_KEY` to the correct [REST endpoint]({{site.baseurl}}/api/basics/#endpoints). For more causes, see [Errors and responses]({{site.baseurl}}/api/errors/#fatal-errors).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_api_key:
                  summary: Invalid API key
                  value:
                    message: 'Invalid API key: YOUR_REST_API_KEY'
        "403":
          description: Access denied. The REST API key doesn't have the required permission. Use a REST API key that has the `catalogs.delete_fields` permission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                access_denied:
                  summary: Missing permission
                  value:
                    message: Access Denied
        "404":
          description: |
            Not found. To resolve it:

            - **`catalog-not-found`:** No catalog matches the `catalog_name`. Check that the catalog name is valid. Pass a valid `catalog_name`. Find it with the [List catalogs endpoint]({{site.baseurl}}/api/endpoints/catalogs/catalog_management/synchronous/get_list_catalogs/).

            The status code `404` could return the following response body. Refer to [Troubleshooting](#troubleshooting) for more information about errors you may encounter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                catalog_not_found:
                  summary: Could not find catalog
                  value:
                    errors:
                      - id: catalog-not-found
                        message: Could not find catalog
                        parameters:
                          - catalog_name
                        parameter_values:
                          - restaurants
                    message: Not Found
        "429":
          description: |
            Rate limited. You exceeded the rate limit for this endpoint. Slow your request rate and retry with exponential backoff. See [API rate limits]({{site.baseurl}}/api/api_limits/).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                over_rate_limit:
                  summary: Over rate limit
                  value:
                    message: You have exceeded your limit of 50 requests per minute. Please contact your account executive to increase your limit. If you do not have their info, you may contact Braze directly at https://www.braze.com/contact/.
        5XX:
          description: |
            Internal server error. An unexpected error occurred on the Braze server. Retry with exponential backoff. If the error persists, contact [Support]({{site.baseurl}}/braze_support/).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: REST API key
      description: |
        REST API keys are created in the Braze dashboard at **Settings → APIs and
        Identifiers → API Keys**. The key must include the `catalogs.delete_fields` permission.
        Pass the key as `Authorization: Bearer YOUR_REST_API_KEY`.
  schemas:
    CatalogFieldResponse:
      title: Delete catalog field response
      type: object
      properties:
        message:
          type: string
          example: success
    ErrorResponse:
      title: Error
      type: object
      properties:
        errors:
          type: array
          description: Details for each error in the request.
          items:
            title: Catalog error
            type: object
            properties:
              id:
                type: string
                description: The error ID. See [Troubleshooting](#troubleshooting).
                example: catalog-not-found
              message:
                type: string
                description: Human-readable error message.
                example: Could not find catalog
              parameters:
                type: array
                description: The request parameters that caused the error.
                items:
                  type: string
              parameter_values:
                type: array
                description: The values of those parameters.
                items:
                  type: string
        message:
          type: string
          description: Human-readable summary of the result.
