Raw schema
{
"type": "object",
"properties": {
"csv": {
"type": "string",
"minLength": 1,
"maxLength": 2000000,
"description": "The full text of a Shopify product CSV, header row first, such as \"Title,URL handle,Description,Vendor,Price,...\". Paste the file exported from Shopify admin (Products > Export) as it is. At most 2 MB; split a larger file by rows and repeat the header in each part. Example call: {\"csv\": \"Title,URL handle,Price\\nWool Beanie,wool-beanie,24.00\"}"
},
"domain": {
"type": "string",
"minLength": 3,
"maxLength": 253,
"description": "A store address such as example.com, sent instead of csv (send exactly one of the two). The store's public /products.json is read once (at most 5 pages of 250 products), after its robots.txt. Large stores often block it; then ask the user for the CSV. Example call: {\"domain\": \"example.com\"}"
},
"fixes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"alt_text",
"title_whitespace",
"title_caps"
]
},
"minItems": 1,
"maxItems": 3,
"default": [
"alt_text",
"title_whitespace",
"title_caps"
],
"description": "Which fixes to build, such as [\"alt_text\"]. alt_text: fill empty image alt text from the template. title_whitespace: trim and collapse spaces in titles. title_caps: rewrite all-capital titles in title case. Default: all three."
},
"alt_text_template": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"default": "{title}",
"description": "Alt text pattern, such as \"{title} by {vendor}, view {position}\". Placeholders: {title}, {vendor}, {type}, {position}; any other text is copied as written. Default \"{title}\"."
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0,
"description": "Rows to skip. Pass next_offset from the last answer, with the same source, fixes and template, for the next 200 rows."
}
},
"anyOf": [
{
"required": [
"csv"
]
},
{
"required": [
"domain"
]
}
],
"additionalProperties": false
}