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

# Create a feature request

> Creates a feature request. When `customer` is given, the customer is recorded as the author and first voter. The `title` and `description` are public on the roadmap. The `reference_note` is private to your team. The request, the vote and the note are saved together, so either all of them are saved or none.

Send an `operation_key` to make the call safe to retry. See [Idempotency](/api/idempotency).

<Info>Replace `{your-subdomain}` with your workspace's subdomain. <br /> Learn how to find your subdomain in [Workspace subdomain](/api/workspace-subdomain).</Info>


## OpenAPI

````yaml bundled/feature-requests.yaml POST /feature_requests
openapi: 3.0.3
info:
  title: NeetoEngage Feature Requests APIs
  version: 1.0.0
servers:
  - description: NeetoEngage APIs
    url: https://{your-subdomain}.neetoengage.com/api/external/v1
    variables:
      your-subdomain:
        default: spinkart
        description: >-
          Replace **spinkart** with your [workspace's
          subdomain](/api/workspace-subdomain).
security: []
tags:
  - name: Feature requests
    description: APIs to search, file and follow up on feature requests.
paths:
  /feature_requests:
    post:
      tags:
        - Feature requests
      summary: Create a feature request
      description: >-
        Creates a feature request. When `customer` is given, the customer is
        recorded as the author and first voter. The `title` and `description`
        are public on the roadmap. The `reference_note` is private to your team.
        The request, the vote and the note are saved together, so either all of
        them are saved or none.


        Send an `operation_key` to make the call safe to retry. See
        [Idempotency](/api/idempotency).
      operationId: createFeatureRequest
      parameters:
        - $ref: '#/components/parameters/api_key_header'
        - $ref: '#/components/parameters/accept_header'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - feature_request
                - reference_note
              properties:
                feature_request:
                  type: object
                  required:
                    - title
                  properties:
                    title:
                      type: string
                      description: Title of the feature request. Public on the roadmap.
                      example: Export roadmap as CSV
                    description:
                      type: string
                      description: >-
                        Description of the feature request. Public on the
                        roadmap.
                      example: Let admins download the roadmap as a CSV file.
                customer:
                  $ref: '#/components/schemas/customer'
                reference_note:
                  $ref: '#/components/schemas/reference_note'
                operation_key:
                  type: string
                  description: Retry token. See [Idempotency](/api/idempotency).
                  example: support-ticket-4821-create
      responses:
        '201':
          description: The feature request was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/feature_request_response'
              example:
                feature_request:
                  id: 5f0f3c2e-8d1b-4c53-9a6e-2b7d41c9e8a1
                  title: Export roadmap as CSV
                  url: >-
                    https://spinkart.neetoengage.com/feature-requests/120-export-roadmap-as-csv
                  admin_url: >-
                    https://spinkart.neetoengage.com/admin/feature-requests/120-export-roadmap-as-csv
                  status: null
                  track: Backlog
                  votes_count: 1
                  created_at: '2026-03-02T10:15:30Z'
                  tag_number: 120
        '401':
          $ref: '#/components/responses/unauthorized'
        '422':
          description: >-
            The title is blank, or the request body has no `feature_request`
            key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                error: Title can't be blank
components:
  parameters:
    api_key_header:
      in: header
      name: X-Api-Key
      description: >-
        API key. Refer to [Authentication](/api/authentication) for more
        information.
      required: true
      schema:
        type: string
    accept_header:
      in: header
      name: Accept
      description: Must be `application/json`.
      required: true
      schema:
        type: string
        enum:
          - application/json
        default: application/json
  schemas:
    customer:
      type: object
      description: >-
        The customer who asked for the feature. The customer is found by email,
        or created if they do not exist, and is recorded as a voter.
      properties:
        email:
          type: string
          format: email
          description: Email address of the customer. Matched case-insensitively.
          example: sam@example.com
        name:
          type: string
          description: Full name of the customer. Used only when the customer is created.
          example: Sam Smith
    reference_note:
      type: object
      description: A private note for the team. Customers never see it.
      required:
        - body
      properties:
        body:
          type: string
          description: Body of the note. HTML is accepted.
          example: <p>Raised on a support call. See conversation 4821.</p>
        author_email:
          type: string
          format: email
          description: >-
            Email of the team member the note is attributed to. If it does not
            match a team member, the note is attributed to the workspace's
            oldest team member.
          example: oliver@example.com
    feature_request_response:
      type: object
      properties:
        feature_request:
          $ref: '#/components/schemas/feature_request_with_tag_number'
    error:
      type: object
      properties:
        error:
          type: string
          description: A human readable error message.
    feature_request_with_tag_number:
      allOf:
        - $ref: '#/components/schemas/feature_request'
        - type: object
          properties:
            tag_number:
              type: integer
              description: Number of the feature request, used as the prefix of its slug.
              example: 120
    feature_request:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the feature request.
          example: 5f0f3c2e-8d1b-4c53-9a6e-2b7d41c9e8a1
        title:
          type: string
          description: Title of the feature request. Public on the roadmap.
          example: Export roadmap as CSV
        url:
          type: string
          description: Public URL of the feature request on the roadmap.
          example: >-
            https://spinkart.neetoengage.com/feature-requests/120-export-roadmap-as-csv
        admin_url:
          type: string
          description: URL of the feature request in the NeetoEngage admin panel.
          example: >-
            https://spinkart.neetoengage.com/admin/feature-requests/120-export-roadmap-as-csv
        status:
          type: string
          nullable: true
          description: >-
            Name of the public roadmap lane the feature request is shown in.
            `null` when the feature request's track does not map to a public
            lane.
          example: Under consideration
        track:
          type: string
          nullable: true
          description: Name of the track the feature request is on.
          example: Backlog
        votes_count:
          type: integer
          description: Number of votes on the feature request.
          example: 1
        created_at:
          type: string
          format: date-time
          description: Time the feature request was created.
          example: '2026-03-02T10:15:30Z'
  responses:
    unauthorized:
      description: The API key is missing, invalid, or expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          example:
            error: Could not authenticate, invalid API Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.