{
    "type": "search",
    "name": "post",
    "label": "Post",
    "request_url": "https://example.com/path/to/your/search/endpoint",
    "placeholder": "Select a post", // optional
    "required": true, // optional
    "help": "help text shown in tooltip to creator while editing", // optional
    "dependencies": ["names", "of", "inputs", "to", "depend", "on"], // optional
    "multiselect": false // optional
  }
  {
    "settings": {
      "post": "post-id-123"
      // ...additional plugin settings
    }
    // ...plugin-specific additional data
  }
The search input allows creators to search and select from dynamic content sourced from external APIs or databases. It provides real-time search functionality with debounced requests, supports dependencies on other form inputs, and can handle both single and multiple selections. This component is ideal for selecting blog posts, products, categories, or any searchable content. example search input

Compatibility

Plugin typeAvailablityAdditional notes
Content blocks
Media source

Request URL behaviour

The behaviour of the request_url property is specific to the plugin environment in which it is used. The sections below outline the differences between plugin enviornments:

Properties

type
string
required
search - 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 search results
placeholder
string
Placeholder text displayed in the search input field
required
boolean
Determines whether the creator must make a selection before proceeding
help
string
Brief creator-facing explanation that clarifies the component’s purpose and usage
dependencies
array
Array of input names that must have values before this search input is displayed
multiselect
boolean
Enables multiple selection when set to true

Best practices

  • Ensure the initial empty state is handled, offering default options when no input is given
  • Use a sensible sort order for your data - for example alphabetical, most recently created or most popular
  • Ensure labels are clear, short and unique so that creators know exactly what they are selecting
  {
    "type": "search",
    "name": "post",
    "label": "Post",
    "request_url": "https://example.com/path/to/your/search/endpoint",
    "placeholder": "Select a post", // optional
    "required": true, // optional
    "help": "help text shown in tooltip to creator while editing", // optional
    "dependencies": ["names", "of", "inputs", "to", "depend", "on"], // optional
    "multiselect": false // optional
  }
  {
    "settings": {
      "post": "post-id-123"
      // ...additional plugin settings
    }
    // ...plugin-specific additional data
  }