Documentation Index
Fetch the complete documentation index at: https://docs.cafescraper.com/llms.txt
Use this file to discover all available pages before exploring further.
input_schema.json is the “face” of a script. By modifying this file, you can control what parameters users need to fill in before running the script (such as URLs, keywords, dates, etc.), and how these inputs are presented (dropdowns, checkboxes, text fields, and more).
1. Overall Structure
A standard configuration file consists of the following three parts:
- description: Introduces the purpose and usage of the script to users.
- b (Concurrency Key Field): Determines how the script splits tasks.
- properties: The list of configurable parameters.
💡 Example
{
"description": "Our Instagram post comment scraper extracts commenter username, URL, comment date, content, like/reply counts, replies, hashtags, comment ID, post ID, original poster and post URL. Results are downloadable in structured formats.",
"b": "post_url",
"properties": [
{
"title": "Post URL",
"name": "post_url",
"type": "array",
"editor": "requestList",
"description": "This parameter is used to specify the Instagram post URL to be fetched.",
"default": [
{
"url": "https://www.instagram.com/cats_of_instagram/reel/C4GLo_eLO2e/"
},
{
"url": "https://www.instagram.com/catsofinstagram/p/CesFC7JLyFl/?img_index=1"
}
],
"required": true
}
]
}
2. Root Field Descriptions
| Field Name | Required | Description |
|---|
| description | No | Tool description. Displayed at the top of the page. Used to explain the script’s purpose, usage notes, and limitations. |
| b | Yes | Task split key. Must match the name of one property. The script will run concurrently based on this field (e.g., split tasks by number of URLs). |
| properties | Yes | Parameter configuration list. Each element represents an input field or selector on the UI. |
3. Parameter Properties (Inside properties)
Each parameter item can include the following attributes:
- title: Label shown on the UI (e.g., “Search Keywords”).
- name: Internal identifier, must be unique and must not contain Chinese characters.
- type: Data type:
string: Text
integer: Number
boolean: Boolean (true / false)
array: List / multiple values
object: Object
- editor: Determines how the input is rendered in the UI (see below).
- description: Helper text shown below the input field.
- default: Default value shown initially.
- required: If set to
true, the script cannot run unless this field is filled.
4. Editor Type Guide
Choose different editors to optimize user experience.
4.1 Basic Text & Numbers
| Editor | UI Display | Use Case |
|---|
| input | Single-line text field | Short text, keywords, usernames, etc. |
| textarea | Multi-line text field | Long-form text input. |
| number | Numeric input | Only allows numeric values with range control. |
4.2 Selectors
| Editor | UI Display | Description |
|---|
| select | Dropdown | Ideal for many predefined options. |
| radio | Radio buttons | Single selection from multiple options. |
| checkbox | Checkboxes | Multiple selections allowed. |
| switch | Toggle switch | Used for on/off states. |
4.3 Date & Special Lists
| Editor | UI Display | Description |
|---|
| datepicker | Date picker | Select or input dates. |
| requestList | URL list | Batch input and management of target URLs. |
| requestListSource | URL list with parameters | Extends requestList with custom parameters. |
| stringList | String list | Batch input for keywords or similar data. |
5. Common Component Examples
{
"title": "Location (use only one location per run)",
"name": "location",
"type": "string",
"editor": "input",
"default": "New York, USA"
}
5.2 Multi-line Textarea
{
"title": "Filter reviews by keywords",
"name": "keywords",
"type": "string",
"editor": "textarea"
}
{
"title": "Number of places to extract (per each search term or URL)",
"name": "maxPlacesPerSearch",
"type": "integer",
"editor": "number",
"default": 4
}
5.4 Dropdown Select
{
"title": "Language",
"name": "language",
"type": "string",
"editor": "select",
"options": [
{ "label": "English", "value": "en" },
{ "label": "Afrikaans", "value": "af" },
{ "label": "azərbaycan", "value": "az" }
],
"default": "en"
}
{
"title": "Category",
"name": "radio",
"type": "integer",
"editor": "radio",
"options": [
{ "label": "hotel", "value": 1 },
{ "label": "restaurant", "value": 2 }
],
"default": 1
}
5.6 Checkboxes
{
"title": "Data Sections to Scrape",
"name": "data_sections",
"type": "array",
"editor": "checkbox",
"options": [
{ "label": "Reviews", "value": "reviews" },
{ "label": "Address", "value": "address" },
{ "label": "Phone Number", "value": "phone_number" }
],
"default": ["reviews", "address"]
}
5.7 Date Picker
{
"title": "Extract posts that are newer than",
"name": "date",
"type": "string",
"editor": "datepicker",
"format": "DD/MM/YYYY",
"valueFormat": "DD/MM/YYYY"
}
{
"title": "Extract posts that are newer than",
"name": "date",
"type": "string",
"editor": "datepicker",
"dateType": "absoluteOrRelative"
}
5.8 Switch
{
"title": "⏩ Skip closed places",
"name": "skipClosed",
"type": "boolean",
"editor": "switch"
}
5.9 URL List (requestList)
{
"name": "startURLs",
"type": "array",
"title": "Start URLs",
"editor": "requestList",
"required": true,
"description": "The URLs of the website to scrape"
}
5.10 URL List Source (requestListSource)
{
"title": "startURLs",
"name": "url",
"type": "array",
"editor": "requestListSource",
"default": [
{
"url": "https://www.instagram.com/espn",
"end_date": "",
"start_date": "",
"num_of_posts": "10",
"posts_to_not_include": ""
}
],
"param_list": [
{
"param": "url",
"title": "URL",
"editor": "input",
"type": "string",
"required": true,
"description": "This parameter is used to specify the Instagram access URL to be fetched."
},
{
"param": "num_of_posts",
"title": "Maximum Number of Reels",
"type": "integer",
"editor": "number",
"description": "This parameter is used to specify the maximum number of Reels to fetch."
},
{
"param": "start_date",
"title": "Start Date",
"type": "string",
"editor": "datepicker",
"format": "MM-DD-YYYY",
"valueFormat": "MM-DD-YYYY",
"description": "This parameter is used to specify the start time of the post, format: mm-dd-yyyy, and should be earlier than the \"end_date\"."
},
{
"param": "end_date",
"title": "End Date",
"type": "string",
"editor": "datepicker",
"format": "MM-DD-YYYY",
"valueFormat": "MM-DD-YYYY",
"description": "This parameter is used to specify the end time of the post, format: mm-dd-yyyy, and should be later than the \"start_date\"."
}
],
"description": "The URLs of the website to scrape"
}
5.11 String List
{
"title": "Search term(s)",
"name": "searchTerms",
"type": "array",
"editor": "stringList",
"default": [
{ "string": "restaurant" },
{ "string": "school" }
]
}
💡 Configuration Tips
-
Write clear descriptions
A well-written
description improves discoverability and usability.
-
Provide sensible defaults
Good defaults allow users to run the script with minimal effort.
-
Enforce required fields
For critical parameters (e.g., login cookies or start URLs), always set
"required": true.