{
    "type": "group",
    "name": "filter_group",
    "settings": [
      {
        "type": "dynamicSelect",
        "label": "Folders",
        "name": "folder",
        "request_url": "https://example-plugin.com/folders",
        "required": false
      }
    ]
  }
  {
    "settings": {
      "folder": "favorites"
      // ...additional plugin settings
    }
    // ...plugin-specific additional data
  }
The dynamic select input provides creators with a dropdown menu containing options fetched dynamically from your server. This component is specifically designed for filtering media gallery results in real-time. When a creator selects an option, it triggers a new request to refresh the media results based on the selected filter value. example dynamic select input
Fields cannot be dependent on dynamic select inputs as they are only available for the media source, that has restricted component functioanlity. Check the media source documentation for more details.

Compatibility

Plugin typeAvailabilityAdditional notes
Content blocks
Media sourceAvailable as part of the preset filter group functionality. Check media source documentation for more details.

Request URL behaviour

Kit makes POST requests to your request_url in the following scenarios:
  • Initial load: Request to populate the dropdown options when the plugin loads
  • Filter selection: Request with the selected value to return filtered media results
Your endpoint should return an array of label-value pairs for the dropdown options:
{
  "options": [
    {
      "label": "Home",
      "value": "home"
    },
    {
      "label": "Favorites", 
      "value": "favorites"
    },
    {
      "label": "Shared",
      "value": "shared"
    }
  ]
}

Properties

type
string
required
dynamicSelect - the type of the component
name
string
required
A unique internal-only identifier that is posted to an app’s plugin server to share values inputted by the creator
label
string
required
Creator-facing identifier that is shown in the plugin environment
request_url
string
required
The endpoint URL that Kit will call to fetch dynamic options and handle filter selections
required
boolean
Determines whether the creator must make a selection before proceeding
  {
    "type": "group",
    "name": "filter_group",
    "settings": [
      {
        "type": "dynamicSelect",
        "label": "Folders",
        "name": "folder",
        "request_url": "https://example-plugin.com/folders",
        "required": false
      }
    ]
  }
  {
    "settings": {
      "folder": "favorites"
      // ...additional plugin settings
    }
    // ...plugin-specific additional data
  }